From 19f8454a680c5231df68fee36ed9758587df316c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20J=C3=B8rgensen?= Date: Thu, 23 May 2024 21:34:28 +0200 Subject: Rudimentary task editing --- page.go | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 page.go (limited to 'page.go') diff --git a/page.go b/page.go new file mode 100644 index 0000000..384ca57 --- /dev/null +++ b/page.go @@ -0,0 +1,59 @@ +package main + +type Service struct { + Db Database +} + +type EntryPage struct { + Task *Task + Detached bool + Tracking *Task +} + +type RootPage struct { + Entry *EntryPage + Tasks []*Task +} + +func NewService(db Database) *Service { + return &Service { + Db: db, + } +} + +func (srv *Service) GetEntryPage(detached *Task) (*EntryPage, error) { + tracking, err := srv.Db.GetTracking() + if err != nil { + return nil, err + } + + page := &EntryPage { + Task: tracking, + Detached: false, + Tracking: tracking, + } + + if detached != nil { + page.Task = detached + page.Detached = true + } + + + return page, nil +} + +func (srv *Service) GetRootPage() (*RootPage, error) { + entry, err := srv.GetEntryPage(nil) + if err != nil { + return nil, err + } + tasks, err := srv.Db.GetTasks() + if err != nil { + return nil, err + } + + return &RootPage { + Entry: entry, + Tasks: tasks, + }, nil +} -- cgit v1.2.3