planner/service/memory.go

43 lines
768 B
Go
Raw Normal View History

2024-08-16 14:25:06 +02:00
package service
type Memory struct {
projects map[string]Project
}
func NewMemory() *Memory {
return &Memory{
projects: make(map[string]Project),
}
}
func (m *Memory) StoreProject(project Project) error {
m.projects[project.ID] = project
return nil
}
2024-08-18 19:34:27 +02:00
func (m *Memory) RemoveProject(id string) error {
if _, ok := m.projects[id]; !ok {
return ErrNotFound
}
delete(m.projects, id)
return nil
}
2024-08-16 14:25:06 +02:00
func (m *Memory) FindProject(id string) (Project, error) {
project, ok := m.projects[id]
if !ok {
return Project{}, ErrNotFound
}
return project, nil
}
func (m *Memory) FindAllProjects() ([]Project, error) {
projects := make([]Project, 0, len(m.projects))
for _, p := range m.projects {
projects = append(projects, p)
}
return projects, nil
}