From 72c88d9884ee0fc1d63763404607e70f116a58bb Mon Sep 17 00:00:00 2001 From: Devansh Singh Date: Wed, 21 Aug 2024 19:33:09 +0530 Subject: [PATCH] Add query parameter to search preset by suite Signed-off-by: Devansh Singh --- src/teuthology_api/routes/presets.py | 10 ++++++++-- src/teuthology_api/services/presets.py | 7 +++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/teuthology_api/routes/presets.py b/src/teuthology_api/routes/presets.py index 0e708c4..9cb8578 100644 --- a/src/teuthology_api/routes/presets.py +++ b/src/teuthology_api/routes/presets.py @@ -1,4 +1,5 @@ import logging +from typing import Optional from fastapi import status, APIRouter, Depends, HTTPException, Request from sqlmodel import Session @@ -25,8 +26,13 @@ def read_preset(username: str, name: str, db: Session = Depends(get_db)): @router.get("/list", status_code=status.HTTP_200_OK) -def read_all_presets(username: str, db: Session = Depends(get_db)): - db_presets = PresetsService(db).get_by_username(username) +def read_all_presets( + username: str, suite: Optional[str] = None, db: Session = Depends(get_db) +): + if suite: + db_presets = PresetsService(db).get_by_username_and_suite(username, suite) + else: + db_presets = PresetsService(db).get_by_username(username) if not db_presets: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, diff --git a/src/teuthology_api/services/presets.py b/src/teuthology_api/services/presets.py index 9571735..c1353a1 100644 --- a/src/teuthology_api/services/presets.py +++ b/src/teuthology_api/services/presets.py @@ -22,6 +22,13 @@ def get_by_username(self, username: str): db_presets = self.db.exec(statement).all() return db_presets + def get_by_username_and_suite(self, username: str, suite: str): + statement = select(Presets).where( + Presets.username == username, Presets.suite == suite + ) + db_presets = self.db.exec(statement).all() + return db_presets + def get_by_username_and_name( self, username: str, preset_name: str ) -> Union[Presets, None]: