diff --git a/internal/services/search.go b/internal/services/search.go index 9f2aa22..2e41fba 100644 --- a/internal/services/search.go +++ b/internal/services/search.go @@ -5,6 +5,7 @@ import ( "context" "strings" + "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgtype" ) @@ -208,3 +209,15 @@ func (s *SearchService) SearchFieldValues(ctx context.Context, params FieldSearc return []FieldValue{}, nil } } + +// ExecuteSearch performs search and returns results with count +// Shared between JSON endpoint and HTML rendering +func (s *SearchService) ExecuteSearch(ctx context.Context, params SearchParams) ([]database.SearchMediaItemsUnifiedRow, int, error) { + results, err := s.SearchMediaItemsUnified(ctx, params) + if err != nil && err != pgx.ErrNoRows { + return nil, 0, err + } + + count := len(results) + return results, count, nil +}