gte/cmd/cli/command/done.go

46 lines
933 B
Go
Raw Permalink Normal View History

2021-07-10 12:30:38 +02:00
package command
import (
2024-09-17 07:33:26 +02:00
"go-mod.ewintr.nl/gte/cmd/cli/format"
"go-mod.ewintr.nl/gte/internal/configuration"
"go-mod.ewintr.nl/gte/internal/process"
"go-mod.ewintr.nl/gte/internal/storage"
"go-mod.ewintr.nl/gte/internal/task"
2021-07-10 12:30:38 +02:00
)
// Done updates a task to be marked done
type Done struct {
doner *process.Update
}
2021-07-29 07:01:24 +02:00
func NewDone(localId int, conf *configuration.Configuration) (*Done, error) {
2021-07-10 12:30:38 +02:00
local, err := storage.NewSqlite(conf.Sqlite())
if err != nil {
return &Done{}, err
}
localTask, err := local.FindByLocalId(localId)
2021-07-14 07:17:53 +02:00
if err != nil {
return &Done{}, err
}
2021-07-10 12:30:38 +02:00
2021-08-22 13:29:04 +02:00
update := &task.LocalUpdate{
ForVersion: localTask.Version,
Fields: []string{task.FIELD_DONE},
Done: true,
}
2021-09-03 10:02:08 +02:00
updater := process.NewUpdate(local, localTask.Id, update)
2021-07-10 12:30:38 +02:00
return &Done{
doner: updater,
}, nil
}
func (d *Done) Do() string {
err := d.doner.Process()
if err != nil {
return format.FormatError(err)
}
2021-09-04 19:47:36 +02:00
return ""
2021-07-10 12:30:38 +02:00
}