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 }