package implementations import ( "errors" "dymatrix.de/jspahl/todo/internal/interfaces" ) type Item struct { id int message string deleted bool } type User struct { id int } type MemoryProvider struct { index int items []Item itemsByUsers [][]*Item } func (prov MemoryProvider) CreateItem(item interfaces.IItem) error { storedItem := Item{id: item.GetId(), message: item.GetMessage(), deleted: false} prov.items = append(prov.items, storedItem) return nil } func (prov MemoryProvider) UpdateItem(item interfaces.IItem) error { storedItem, err := prov.GetItemPtr(item.GetId()) if err != nil { return err } storedItem.message = item.GetMessage() return nil } func (prov MemoryProvider) GetItemPtr(id int) (*Item, error) { for i, item := range prov.items { if item.id == id && !item.deleted { return &prov.items[i], nil } } return nil, errors.New("Item not found") }