From 27c2d2518744bc8b6d2a4f1013562d5460e5fcf9 Mon Sep 17 00:00:00 2001 From: Dyakov Roman Date: Fri, 5 Apr 2024 21:07:58 +0300 Subject: [PATCH 1/3] Add service getter --- services_backend/routes/button.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/services_backend/routes/button.py b/services_backend/routes/button.py index f30a9d3..e6890a8 100644 --- a/services_backend/routes/button.py +++ b/services_backend/routes/button.py @@ -11,6 +11,7 @@ logger = logging.getLogger(__name__) button = APIRouter() +service = APIRouter() # region schemas @@ -183,3 +184,28 @@ def update_button( query.update(button_inp.dict(exclude_unset=True, exclude_none=True)) db.session.flush() return button + + +@service.get("/{button_id}", response_model=ButtonGet) +def get_service( + button_id: int, + category_id: int, + user=Depends(UnionAuth(allow_none=True, auto_error=False)), +): + """Показать одну кнопку + + Необходимые scopes: `-` + + TODO: Переделать ручку, сделав сервис независимым от кнопки + """ + user_id = user.get('id') if user is not None else None + logger.info(f"User {user_id} triggered get_button") + category = db.session.query(Category).filter(Category.id == category_id).one_or_none() + if not category: + raise HTTPException(status_code=404, detail="Category does not exist") + button = db.session.query(Button).filter(Button.id == button_id).one_or_none() + if not button: + raise HTTPException(status_code=404, detail="Button does not exist") + if button.category_id != category_id: + raise HTTPException(status_code=404, detail="Button is not this category") + return button From 743b4c1e3cfca4e4a8fe56745750eeaca0949b3c Mon Sep 17 00:00:00 2001 From: Dyakov Roman Date: Fri, 5 Apr 2024 21:10:13 +0300 Subject: [PATCH 2/3] Include service router --- services_backend/routes/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services_backend/routes/base.py b/services_backend/routes/base.py index 01a1eb4..873e0c1 100644 --- a/services_backend/routes/base.py +++ b/services_backend/routes/base.py @@ -5,7 +5,7 @@ from services_backend import __version__ from services_backend.settings import get_settings -from .button import button +from .button import button, service from .category import category @@ -40,3 +40,4 @@ app.include_router(button, prefix='/category/{category_id}/button', tags=["Button"]) app.include_router(category, prefix='/category', tags=["Category"]) +app.include_router(service, prefix='/service', tags=["Service"]) From 7d7b152f3735e0cdd4feb606dc692168f38398d6 Mon Sep 17 00:00:00 2001 From: Dyakov Roman Date: Fri, 5 Apr 2024 21:22:57 +0300 Subject: [PATCH 3/3] Update button.py --- services_backend/routes/button.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/services_backend/routes/button.py b/services_backend/routes/button.py index e6890a8..3eae6d7 100644 --- a/services_backend/routes/button.py +++ b/services_backend/routes/button.py @@ -189,7 +189,6 @@ def update_button( @service.get("/{button_id}", response_model=ButtonGet) def get_service( button_id: int, - category_id: int, user=Depends(UnionAuth(allow_none=True, auto_error=False)), ): """Показать одну кнопку @@ -200,12 +199,7 @@ def get_service( """ user_id = user.get('id') if user is not None else None logger.info(f"User {user_id} triggered get_button") - category = db.session.query(Category).filter(Category.id == category_id).one_or_none() - if not category: - raise HTTPException(status_code=404, detail="Category does not exist") button = db.session.query(Button).filter(Button.id == button_id).one_or_none() if not button: raise HTTPException(status_code=404, detail="Button does not exist") - if button.category_id != category_id: - raise HTTPException(status_code=404, detail="Button is not this category") return button