summaryrefslogtreecommitdiff
path: root/page.go
diff options
context:
space:
mode:
authorJulian Jørgensen <julian@jtle.dk>2024-05-23 21:34:28 +0200
committerJulian Jørgensen <julian@jtle.dk>2024-05-23 21:34:28 +0200
commit19f8454a680c5231df68fee36ed9758587df316c (patch)
tree33521610573c6e075a5625e861c8677caa5dc615 /page.go
parentdd11cf4ab199e5d53d03dc95b24007a12727ad70 (diff)
Rudimentary task editing
Diffstat (limited to 'page.go')
-rw-r--r--page.go59
1 files changed, 59 insertions, 0 deletions
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
+}