diff --git a/src/mavedb/routers/score_sets.py b/src/mavedb/routers/score_sets.py index 453c4b93..2e19a137 100644 --- a/src/mavedb/routers/score_sets.py +++ b/src/mavedb/routers/score_sets.py @@ -145,14 +145,15 @@ def search_score_sets( """ score_sets = _search_score_sets(db, None, search) updated_score_sets = fetch_superseding_score_set_in_search_result(score_sets, user_data, search) + enriched_score_sets = [] - if updated_score_sets: + if search.include_experiment_score_set_urns_and_count and updated_score_sets: for u in updated_score_sets: enriched_experiment = enrich_experiment_with_num_score_sets(u.experiment, user_data) response_item = score_set.ScoreSet.model_validate(u).copy(update={"experiment": enriched_experiment}) enriched_score_sets.append(response_item) - return enriched_score_sets + return enriched_score_sets if search.include_experiment_score_set_urns_and_count else updated_score_sets @router.get("/score-sets/mapped-genes", status_code=200, response_model=dict[str, list[str]]) diff --git a/src/mavedb/server_main.py b/src/mavedb/server_main.py index ad6eb801..f7ec3e8c 100644 --- a/src/mavedb/server_main.py +++ b/src/mavedb/server_main.py @@ -7,6 +7,7 @@ from fastapi.encoders import jsonable_encoder from fastapi.exceptions import RequestValidationError from fastapi.middleware.cors import CORSMiddleware +from fastapi.middleware.gzip import GZipMiddleware from fastapi.openapi.utils import get_openapi from sqlalchemy.orm import configure_mappers from starlette import status @@ -82,6 +83,7 @@ allow_methods=["*"], allow_headers=["*"], ) +app.add_middleware(GZipMiddleware, minimum_size=1000, compresslevel=5) app.include_router(access_keys.router) app.include_router(api_information.router) app.include_router(collections.router) diff --git a/src/mavedb/view_models/search.py b/src/mavedb/view_models/search.py index 75f1005e..9683e854 100644 --- a/src/mavedb/view_models/search.py +++ b/src/mavedb/view_models/search.py @@ -26,6 +26,7 @@ class ScoreSetsSearch(BaseModel): publication_identifiers: Optional[list[str]] = None keywords: Optional[list[str]] = None text: Optional[str] = None + include_experiment_score_set_urns_and_count: Optional[bool] = True class TextSearch(BaseModel):