(db *badger.DB, tasks []model.ExportedTask)
| 100 | } |
| 101 | |
| 102 | func 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 | } |
no test coverage detected