diff --git a/internal/db/command_palette.go b/internal/db/command_palette.go index 59550cc..d0546a2 100644 --- a/internal/db/command_palette.go +++ b/internal/db/command_palette.go @@ -48,22 +48,8 @@ LIMIT ?`, userID, needle, pattern, pattern, pattern, pattern, limit) items := make([]GetContinueWatchingEntriesRow, 0, int(limit)) for rows.Next() { - var item GetContinueWatchingEntriesRow - if err := rows.Scan( - &item.ID, - &item.UserID, - &item.AnimeID, - &item.CurrentEpisode, - &item.CurrentTimeSeconds, - &item.DurationSeconds, - &item.CreatedAt, - &item.UpdatedAt, - &item.TitleOriginal, - &item.TitleEnglish, - &item.TitleJapanese, - &item.ImageUrl, - &item.AnimeDurationSeconds, - ); err != nil { + item, err := scanContinueWatchingEntry(rows) + if err != nil { return nil, err } items = append(items, item) @@ -75,6 +61,26 @@ LIMIT ?`, userID, needle, pattern, pattern, pattern, pattern, limit) return items, nil } +func scanContinueWatchingEntry(rows scanner) (GetContinueWatchingEntriesRow, error) { + var item GetContinueWatchingEntriesRow + err := rows.Scan( + &item.ID, + &item.UserID, + &item.AnimeID, + &item.CurrentEpisode, + &item.CurrentTimeSeconds, + &item.DurationSeconds, + &item.CreatedAt, + &item.UpdatedAt, + &item.TitleOriginal, + &item.TitleEnglish, + &item.TitleJapanese, + &item.ImageUrl, + &item.AnimeDurationSeconds, + ) + return item, err +} + func (q *Queries) GetCommandPaletteWatchlist(ctx context.Context, userID string, query string, limit int64) ([]GetUserWatchListRow, error) { if userID == "" { return nil, nil @@ -158,3 +164,7 @@ func commandPalettePattern(query string) (string, string) { needle := strings.ToLower(strings.TrimSpace(query)) return needle, "%" + needle + "%" } + +type scanner interface { + Scan(dest ...interface{}) error +}