/
article.go
48 lines (41 loc) · 1.04 KB
/
article.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package database
import (
"gorm.io/gorm"
"github.com/ginkwok/artihub/model"
)
func GetAllArticles(db *gorm.DB) ([]*model.Article, error) {
var articles []*model.Article
result := db.Find(&articles)
if result.Error != nil {
return nil, result.Error
}
return articles, nil
}
func GetArticleByID(db *gorm.DB, id int64) (*model.Article, error) {
var article *model.Article
err := db.First(&article, id).Error
if err != nil {
return nil, err
}
return article, nil
}
func CreateArticle(db *gorm.DB, article *model.Article) (*model.Article, error) {
err := db.Select("Title", "Content").Create(&article).Error
if err != nil {
return nil, err
}
return article, nil
}
func UpdateArticle(db *gorm.DB, article *model.Article) error {
oldarticle, err := GetArticleByID(db, int64(article.ID))
if err != nil {
return err
}
return db.Model(&oldarticle).Updates(model.Article{
Title: article.Title,
Content: article.Content,
}).Error
}
func DeleteArticleByID(db *gorm.DB, id int64) error {
return db.Delete(&model.Article{}, id).Error
}