You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

91 lines
1.3 KiB

package database
import "time"
func GetPostById(id string) (Post, error) {
var (
post Post
e error
)
e = DB.Model(&Post{}).
Where("id = ?", id).
First(&post).
Error
return post, e
}
func GetPostsList(limit int, offset int) ([]Post, error) {
var (
posts []Post
e error
)
e = DB.Model(&Post{}).
Order("updated_at desc").
Limit(limit).
Offset(offset).
Find(&posts).
Error
return posts, e
}
func GetPostsListBySubject(limit int, offset int, subject string) ([]Post, error) {
var (
posts []Post
e error
)
e = DB.Model(&Post{}).
Where("subject = ?", subject).
Order("updated_at desc").
Limit(limit).
Offset(offset).
Find(&posts).
Error
return posts, e
}
func GetPostCountBySubject(subject string) (int64, error) {
var (
count int64
e error
)
e = DB.Model(&Post{}).
Where("subject = ?", subject).
Count(&count).
Error
return count, e
}
func CreatePost(post Post) error {
return DB.Model(&Post{}).
Create(&post).
Error
}
func UpdatePost(post Post) error {
return DB.Save(&post).Error
}
func GetLastUpdatedAt() (time.Time, error) {
var (
post Post
e error
)
e = DB.Model(&Post{}).
Select("updated_at").
Order("updated_at desc").
Limit(1).
Offset(0).
First(&post).
Error
return post.UpdatedAt, e
}