package command import ( "fmt" "time" "go-mod.ewintr.nl/planner/item" ) type StoreParams struct { Title string Date item.Date Time item.Time Duration time.Duration Recurrer item.Recurrer } type Store struct { task item.Task } func NewStore(task item.Task) *Store { return &Store{ task: task, } } func (store *Store) Do(deps Dependencies) error { if err := deps.TaskRepo.Store(store.task); err != nil { return fmt.Errorf("could not store event: %v", err) } localID, err := deps.LocalIDRepo.Next() if err != nil { return fmt.Errorf("could not create next local id: %v", err) } if err := deps.LocalIDRepo.Store(store.task.ID, localID); err != nil { return fmt.Errorf("could not store local id: %v", err) } it, err := store.task.Item() if err != nil { return fmt.Errorf("could not convert event to sync item: %v", err) } if err := deps.SyncRepo.Store(it); err != nil { return fmt.Errorf("could not store sync item: %v", err) } return nil }