mirror of
https://github.com/snowykami/neo-blog.git
synced 2025-09-04 00:06:22 +00:00
refactor: change import paths for DeviceContext and GravatarAvatar components fix: adjust login form API call and update UI text for clarity feat: add post API for listing posts with pagination and filtering options feat: implement BlogCard component for displaying blog posts with enhanced UI feat: create Badge component for consistent styling of labels and indicators refactor: reintroduce DeviceContext with improved functionality for theme and language management feat: define Label and Post models for better type safety and structure
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package repo
|
|
|
|
import "github.com/snowykami/neo-blog/internal/model"
|
|
|
|
type labelRepo struct{}
|
|
|
|
var Label = &labelRepo{}
|
|
|
|
func (l *labelRepo) CreateLabel(label *model.Label) error {
|
|
return GetDB().Create(label).Error
|
|
}
|
|
|
|
func (l *labelRepo) GetLabelByKey(key string) (*model.Label, error) {
|
|
var label model.Label
|
|
if err := GetDB().Where("key = ?", key).First(&label).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &label, nil
|
|
}
|
|
|
|
func (l *labelRepo) GetLabelByID(id string) (*model.Label, error) {
|
|
var label model.Label
|
|
if err := GetDB().Where("id = ?", id).First(&label).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &label, nil
|
|
}
|
|
|
|
func (l *labelRepo) ListLabels() ([]model.Label, error) {
|
|
var labels []model.Label
|
|
if err := GetDB().Find(&labels).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return labels, nil
|
|
}
|
|
|
|
func (l *labelRepo) UpdateLabel(label *model.Label) error {
|
|
if err := GetDB().Save(label).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (l *labelRepo) DeleteLabel(id string) error {
|
|
if err := GetDB().Where("id = ?", id).Delete(&model.Label{}).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|