From ca8ef86697697cc823eef8eb553fc7cc686d3b1a Mon Sep 17 00:00:00 2001 From: dderbentsov Date: Sun, 30 Jul 2023 02:27:47 +0300 Subject: [PATCH] add full_name query param --- src/personal_info/routers/persons.py | 5 ++++- src/personal_info/services/persons.py | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/personal_info/routers/persons.py b/src/personal_info/routers/persons.py index 2bd259c..e0d4141 100644 --- a/src/personal_info/routers/persons.py +++ b/src/personal_info/routers/persons.py @@ -11,9 +11,12 @@ router = APIRouter(prefix='/persons') @router.get('/', response_model=List[Person]) async def list_persons( + full_name: str = '', persons_service: PersonService = Depends(get_persons_service), + ) -> List[models.Person]: - return persons_service.list() + + return persons_service.list(full_name) @router.get('/{person_id}', response_model=PersonDetail) async def get_person( diff --git a/src/personal_info/services/persons.py b/src/personal_info/services/persons.py index 8e521ef..e523834 100644 --- a/src/personal_info/services/persons.py +++ b/src/personal_info/services/persons.py @@ -1,4 +1,4 @@ -from typing import Any +from typing import Any, List from sqlalchemy.orm import Session @@ -11,6 +11,10 @@ class PersonService(BaseService[Person, PersonCreate, Any]): def __init__(self, db_session: Session): super(PersonService, self).__init__(Person, db_session) + def list(self, full_name: str) -> List[Person]: + objs: List[Person] = self.db_session.query(Person).filter(Person.last_name.ilike(full_name)).all() + return objs + def create(self, obj: PersonCreate) -> Person: print('= raw' * 3 ) print(obj)