2026-10-15 18:34:53 -07:00
|
|
|
package store
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"database/sql"
|
|
|
|
|
"encoding/json"
|
|
|
|
|
|
2026-10-18 15:32:07 -07:00
|
|
|
"g.fc.run/ai/byre/internal/api"
|
2026-10-15 18:34:53 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func (s *Store) UpdateNotificationPrefs(ctx context.Context, login string, prefs api.NotificationPrefs) (api.User, error) {
|
|
|
|
|
b, err := json.Marshal(prefs)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return api.User{}, err
|
|
|
|
|
}
|
|
|
|
|
err = s.write(ctx, func(tx *sql.Tx, emit emitFunc) error {
|
|
|
|
|
_, err := tx.ExecContext(ctx, `UPDATE users SET notification_prefs = ? WHERE login = ?`, string(b), login)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
return emit(api.Event{Kind: "user.updated", Actor: login, Payload: map[string]any{"login": login}})
|
|
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
return api.User{}, err
|
|
|
|
|
}
|
|
|
|
|
return s.GetUser(ctx, login)
|
|
|
|
|
}
|
2026-10-18 00:57:51 -07:00
|
|
|
|
|
|
|
|
func (s *Store) UpdateDefaultModel(ctx context.Context, login, model string) (api.User, error) {
|
|
|
|
|
err := s.write(ctx, func(tx *sql.Tx, emit emitFunc) error {
|
|
|
|
|
_, err := tx.ExecContext(ctx, `UPDATE users SET default_model = ? WHERE login = ?`, model, login)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
return emit(api.Event{Kind: "user.updated", Actor: login, Payload: map[string]any{"login": login}})
|
|
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
return api.User{}, err
|
|
|
|
|
}
|
|
|
|
|
return s.GetUser(ctx, login)
|
|
|
|
|
}
|