brainbuffer-go/pkg/brainbuffer/domain/task/in_memo_repo.go
2022-06-03 23:44:08 +06:00

44 lines
829 B
Go

package task
import (
"brainbuffer/pkg/brainbuffer/domain/repository"
)
type inMemoryRepository struct {
db map[int64]*Task
idCounter int64
}
func (repo *inMemoryRepository) Save(task *Task) (int64, error) {
repo.idCounter++
task.ID = repo.idCounter
repo.db[repo.idCounter] = task
return task.ID, nil
}
func (repo *inMemoryRepository) FindByID(id int64) (*Task, error) {
if v, ok := repo.db[id]; ok {
return v, nil
} else {
return nil, nil
}
}
func (repo *inMemoryRepository) FindAllByUser(userId string, page repository.Page) (Tasks, error) {
userTasks := make(Tasks, 0)
for _, val := range repo.db {
if val.UserID == userId {
userTasks = append(userTasks, val)
}
}
return userTasks, nil
}
func (repo *inMemoryRepository) DeleteByID(id int64) error {
delete(repo.db, id)
return nil
}