planner/storage/memory.go

47 lines
799 B
Go
Raw Normal View History

2024-08-20 08:34:11 +02:00
package storage
import "code.ewintr.nl/planner/planner"
2024-08-16 14:25:06 +02:00
type Memory struct {
2024-08-21 16:35:44 +02:00
items map[string]planner.Syncable
2024-08-16 14:25:06 +02:00
}
func NewMemory() *Memory {
return &Memory{
2024-08-21 16:35:44 +02:00
items: make(map[string]planner.Syncable),
2024-08-16 14:25:06 +02:00
}
}
2024-08-21 16:35:44 +02:00
func (m *Memory) StoreProject(item planner.Syncable) error {
m.items[item.ID()] = item
2024-08-16 14:25:06 +02:00
return nil
}
2024-08-21 16:35:44 +02:00
/*
2024-08-18 19:34:27 +02:00
func (m *Memory) RemoveProject(id string) error {
2024-08-21 16:35:44 +02:00
if _, ok := m.items[id]; !ok {
2024-08-18 19:34:27 +02:00
return ErrNotFound
}
2024-08-21 16:35:44 +02:00
delete(m.items, id)
2024-08-18 19:34:27 +02:00
return nil
}
2024-08-16 14:25:06 +02:00
func (m *Memory) FindProject(id string) (Project, error) {
2024-08-21 16:35:44 +02:00
project, ok := m.items[id]
2024-08-16 14:25:06 +02:00
if !ok {
return Project{}, ErrNotFound
}
return project, nil
}
func (m *Memory) FindAllProjects() ([]Project, error) {
2024-08-21 16:35:44 +02:00
items := make([]Project, 0, len(m.items))
for _, p := range m.items {
items = append(items, p)
2024-08-16 14:25:06 +02:00
}
2024-08-21 16:35:44 +02:00
return items, nil
2024-08-16 14:25:06 +02:00
}
2024-08-21 16:35:44 +02:00
*/