41 lines
865 B
Go
41 lines
865 B
Go
package common
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
func (todo Todo) Store(store *BoltStore, user string) error {
|
|
if todo.Owner != user {
|
|
return fmt.Errorf("unauthorized user")
|
|
}
|
|
todoJson, err := json.Marshal(todo)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return store.SaveValueToBucket(user, todo.Name, string(todoJson))
|
|
}
|
|
|
|
func (todoRequest StoreTodoRequest) Store(store *BoltStore, user string) error {
|
|
todo := Todo{
|
|
Name: todoRequest.Name,
|
|
Description: todoRequest.Description,
|
|
Status: todoRequest.Status,
|
|
Owner: user,
|
|
}
|
|
todoJson, err := json.Marshal(todo)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return store.SaveValueToBucket(user, todo.Name, string(todoJson))
|
|
}
|
|
|
|
func (todos TodoList) FindByName(name string) (Todo, bool) {
|
|
for _, todo := range todos.Todos {
|
|
if todo.Name == name {
|
|
return todo, true
|
|
}
|
|
}
|
|
return Todo{}, false
|
|
}
|