refactor: extract watchlist map to service, optimize command palette queries

This commit is contained in:
2026-05-20 17:03:29 +02:00
committed by Mikkel Elvers
parent c4bd5cc395
commit 5482a40d47
5 changed files with 168 additions and 141 deletions

View File

@@ -55,6 +55,32 @@ func (s *watchlistService) GetWatchlist(ctx context.Context, userID string) ([]d
return s.repo.GetUserWatchList(ctx, userID)
}
func (s *watchlistService) GetWatchlistMap(ctx context.Context, userID string, animeIDs []int64) (map[int]bool, error) {
watchlistMap := make(map[int]bool)
if userID == "" || len(animeIDs) == 0 {
return watchlistMap, nil
}
matches, err := s.repo.GetUserWatchlistAnimeIDs(ctx, userID, animeIDs)
if err != nil {
return watchlistMap, err
}
for _, animeID := range matches {
watchlistMap[int(animeID)] = true
}
return watchlistMap, nil
}
func (s *watchlistService) GetCommandPaletteWatchlist(ctx context.Context, userID string, query string, limit int64) ([]domain.UserWatchListRow, error) {
return s.repo.GetCommandPaletteWatchlist(ctx, userID, query, limit)
}
func (s *watchlistService) GetCommandPaletteContinueWatching(ctx context.Context, userID string, query string, limit int64) ([]db.GetContinueWatchingEntriesRow, error) {
return s.repo.GetCommandPaletteContinueWatching(ctx, userID, query, limit)
}
func (s *watchlistService) GetWatchListEntry(ctx context.Context, userID string, animeID int64) (db.WatchListEntry, error) {
return s.repo.GetWatchListEntry(ctx, db.GetWatchListEntryParams{
UserID: userID,