add gorm backend

This commit is contained in:
2025-02-10 13:00:41 +01:00
parent b83d236d65
commit 593815b923
7 changed files with 94 additions and 34 deletions

View File

@ -1,43 +1,54 @@
package things
import "slices"
import (
"log"
"wails-template/model"
type Thing struct {
ID int
Name string
}
"gorm.io/gorm"
)
type Service struct {
things map[int]Thing
maxID int
}
func NewThingsService() *Service {
return &Service{
things: make(map[int]Thing),
}
DB *gorm.DB
}
func (s *Service) NewThing(name string) {
s.maxID++
s.things[s.maxID] = Thing{
Name: name,
ID: s.maxID,
if err := s.DB.Save(&model.Thing{Name: name}).Error; err != nil {
log.Fatal(err)
}
print(name)
}
func (s *Service) GetThings() []Thing {
things := make([]Thing, 0, len(s.things))
for _, t := range s.things {
things = append(things, t)
func (s *Service) GetThings() (things []model.Thing) {
if err := s.DB.Find(&things).Error; err != nil {
log.Fatal(err)
}
slices.SortFunc(things, func(a, b Thing) int { return a.ID - b.ID })
return things
}
func (s *Service) DeleteThing(id int) {
delete(s.things, id)
if err := s.DB.Delete(model.Thing{}, id).Error; err != nil {
log.Fatal(err)
}
}
func (s *Service) GetSubThings(thingID int) (subthings []model.SubThing) {
if err := s.DB.Where("thing_id = ?", thingID).Find(&subthings).Error; err != nil {
log.Fatal(err)
}
return
}
func (s *Service) AddSubThing(thingID int, name string) {
if err := s.DB.Save(&model.SubThing{
ThingID: thingID,
Name: name,
}).Error; err != nil {
log.Fatal(err)
}
}
func (s *Service) DeleteSubThing(id int) {
if err := s.DB.Delete(model.SubThing{}, id).Error; err != nil {
log.Fatal(err)
}
}