mirror of
https://github.com/ordinary-dev/phoenix
synced 2024-09-20 03:40:29 +05:00
54 lines
1,014 B
Go
54 lines
1,014 B
Go
package backend
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Group struct {
|
|
ID uint64 `gorm:"primaryKey"`
|
|
Name string `gorm:"unique,notNull"`
|
|
Links []Link `gorm:"constraint:OnDelete:CASCADE;"`
|
|
}
|
|
|
|
func GetGroups(db *gorm.DB) ([]Group, error) {
|
|
var groups []Group
|
|
result := db.Model(&Group{}).Preload("Links").Find(&groups)
|
|
if result.Error != nil {
|
|
return nil, result.Error
|
|
}
|
|
return groups, nil
|
|
}
|
|
|
|
func CreateGroup(db *gorm.DB, groupName string) (Group, error) {
|
|
group := Group{
|
|
Name: groupName,
|
|
}
|
|
result := db.Create(&group)
|
|
if result.Error != nil {
|
|
return Group{}, result.Error
|
|
}
|
|
|
|
return group, nil
|
|
}
|
|
|
|
func UpdateGroup(db *gorm.DB, id uint64, groupName string) (Group, error) {
|
|
var group Group
|
|
db.First(&group, id)
|
|
|
|
group.Name = groupName
|
|
result := db.Save(&group)
|
|
if result.Error != nil {
|
|
return Group{}, result.Error
|
|
}
|
|
|
|
return group, nil
|
|
}
|
|
|
|
func DeleteGroup(db *gorm.DB, id uint64) error {
|
|
result := db.Delete(&Group{}, id)
|
|
if result.Error != nil {
|
|
return result.Error
|
|
}
|
|
return nil
|
|
}
|