42 lines
817 B
Go
42 lines
817 B
Go
package task
|
|
|
|
import "brainbuffer/pkg/brainbuffer/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
|
|
}
|