34 lines
619 B
Go
34 lines
619 B
Go
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
|
|
}
|
|
|
|
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
|
|
}
|