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"]) diff --git a/services_backend/routes/button.py b/services_backend/routes/button.py index f30a9d3..3eae6d7 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,22 @@ 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, + 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") + 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") + return button