diff --git a/app.tmpl.go b/app.tmpl.go index af53038..944325c 100644 --- a/app.tmpl.go +++ b/app.tmpl.go @@ -3,6 +3,7 @@ package main import ( "context" "fmt" + "slices" ) // App struct @@ -25,3 +26,43 @@ func (a *App) startup(ctx context.Context) { func (a *App) Greet(name string) string { return fmt.Sprintf("Hello %s, It's show time!", name) } + +type Thing struct { + ID int + Name string +} + +type Service struct { + things map[int]Thing + maxID int +} + +func NewThingsService() *Service { + return &Service{ + things: make(map[int]Thing), + } +} + +func (s *Service) NewThing(name string) { + s.maxID++ + s.things[s.maxID] = Thing{ + Name: name, + ID: s.maxID, + } + + print(name) +} + +func (s *Service) GetThings() []Thing { + things := make([]Thing, 0, len(s.things)) + for _, t := range s.things { + things = append(things, t) + } + 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) + +} diff --git a/main.tmpl.go b/main.tmpl.go index b744f26..c1e08c0 100644 --- a/main.tmpl.go +++ b/main.tmpl.go @@ -15,7 +15,7 @@ var assets embed.FS func main() { // Create an instance of the app structure app := NewApp() - things := things.NewThingsService() + things := NewThingsService() // Create application with options err := wails.Run(&options.App{