| 115 | } |
| 116 | |
| 117 | func (m *MemoryDatabase) AddMemory(ctx context.Context, memory database.UserMemory) error { |
| 118 | ctx, span := startMemorySpan(ctx, "add") |
| 119 | defer span.End() |
| 120 | |
| 121 | if memory.ID == "" { |
| 122 | return database.ErrEmptyID |
| 123 | } |
| 124 | err := m.withWriteLock(ctx, func(db *sql.DB) error { |
| 125 | _, err := db.ExecContext(ctx, "INSERT INTO memories (id, created_at, memory, category) VALUES (?, ?, ?, ?)", |
| 126 | memory.ID, memory.CreatedAt, memory.Memory, memory.Category) |
| 127 | return err |
| 128 | }) |
| 129 | if err != nil { |
| 130 | span.RecordError(err) |
| 131 | span.SetStatus(codes.Error, err.Error()) |
| 132 | } |
| 133 | return err |
| 134 | } |
| 135 | |
| 136 | func (m *MemoryDatabase) GetMemories(ctx context.Context) ([]database.UserMemory, error) { |
| 137 | ctx, span := startMemorySpan(ctx, "list") |