Initial commit

This commit is contained in:
2025-05-11 20:32:14 +08:00
commit d97247159f
80 changed files with 13013 additions and 0 deletions

60
server/dao/tag.go Normal file
View File

@@ -0,0 +1,60 @@
package dao
import (
"errors"
"nysoure/server/model"
"gorm.io/gorm"
)
func CreateTag(tag string) (model.Tag, error) {
// Create a new tag in the database
t := model.Tag{Name: tag}
if err := db.Create(&t).Error; err != nil {
return model.Tag{}, err
}
return t, nil
}
func SearchTag(keyword string) ([]model.Tag, error) {
// Search for a tag by its name in the database
var t []model.Tag
if err := db.Model(&model.Tag{}).Where("name Like ?", "%"+keyword+"%").Limit(10).Find(&t).Error; err != nil {
return nil, err
}
return t, nil
}
func DeleteTag(id uint) error {
// Delete a tag from the database
t := model.Tag{}
t.ID = id
if err := db.Delete(&t).Error; err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
return err
}
return nil
}
func GetTagByID(id uint) (model.Tag, error) {
// Retrieve a tag by its ID from the database
var t model.Tag
if err := db.First(&t, id).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return model.Tag{}, model.NewNotFoundError("Tag not found")
}
return model.Tag{}, err
}
return t, nil
}
func GetTagByName(name string) (model.Tag, error) {
// Retrieve a tag by its name from the database
var t model.Tag
if err := db.Where("name = ?", name).First(&t).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return model.Tag{}, model.NewNotFoundError("Tag not found")
}
return model.Tag{}, err
}
return t, nil
}