MCPcopy Create free account
hub / github.com/caarlos0/tasktimer / LoadTasks

Function LoadTasks

internal/store/store.go:102–132  ·  view source on GitHub ↗
(db *badger.DB, tasks []model.ExportedTask)

Source from the content-addressed store, hash-verified

100}
101
102func LoadTasks(db *badger.DB, tasks []model.ExportedTask) error {
103 sort.Slice(tasks, func(i, j int) bool {
104 return tasks[i].StartAt.Before(tasks[j].StartAt)
105 })
106 return db.Update(func(txn *badger.Txn) error {
107 seq, err := db.GetSequence(sequenceID, 100)
108 if err != nil {
109 return err
110 }
111 defer seq.Release()
112
113 for _, t := range tasks {
114 s, err := seq.Next()
115 if err != nil {
116 return err
117 }
118 id := string(prefix) + strconv.FormatUint(s, 10)
119 log.Println("creating task:", id, "->", t)
120 if err := txn.Set([]byte(id), model.Task{
121 ID: s,
122 Title: t.Title,
123 StartAt: t.StartAt,
124 EndAt: t.EndAt,
125 }.Bytes()); err != nil {
126 return fmt.Errorf("failed to create task: %w", err)
127 }
128 }
129
130 return nil
131 })
132}

Callers 1

newFromJSONCmdFunction · 0.92

Calls 3

ErrorfMethod · 0.80
UpdateMethod · 0.45
BytesMethod · 0.45

Tested by

no test coverage detected