diff --git a/app/webapi/routes/pages.py b/app/webapi/routes/pages.py index f14ba1c3..81d76291 100644 --- a/app/webapi/routes/pages.py +++ b/app/webapi/routes/pages.py @@ -242,6 +242,57 @@ async def list_faq_pages( ) +@router.get("/faq/status", response_model=FaqStatusResponse) +async def get_faq_status( + _: object = Security(require_api_token), + db: AsyncSession = Depends(get_db_session), + language: str = Query("ru", min_length=2, max_length=10), + fallback: bool = Query(True), +) -> FaqStatusResponse: + requested_lang = FaqService.normalize_language(language) + setting = await FaqService.get_setting(db, requested_lang, fallback=fallback) + + if not setting: + return FaqStatusResponse( + requested_language=requested_lang, + language=requested_lang, + is_enabled=False, + ) + + return FaqStatusResponse( + requested_language=requested_lang, + language=setting.language, + is_enabled=bool(setting.is_enabled), + ) + + +@router.put("/faq/status", response_model=FaqStatusResponse) +async def update_faq_status( + payload: Optional[FaqStatusUpdateRequest] = Body(None), + language: str = Query("ru", min_length=2, max_length=10), + is_enabled: Optional[bool] = Query(None), + _: object = Security(require_api_token), + db: AsyncSession = Depends(get_db_session), +) -> FaqStatusResponse: + resolved_language = FaqService.normalize_language( + payload.language if payload and payload.language else language + ) + + enabled_status = payload.is_enabled if payload else is_enabled + if enabled_status is None: + raise HTTPException( + status.HTTP_400_BAD_REQUEST, "Parameter 'is_enabled' is required" + ) + + setting = await FaqService.set_enabled(db, resolved_language, enabled_status) + + return FaqStatusResponse( + requested_language=resolved_language, + language=setting.language, + is_enabled=bool(setting.is_enabled), + ) + + @router.post("/faq", response_model=FaqPageResponse, status_code=status.HTTP_201_CREATED) async def create_faq_page( payload: FaqPageCreateRequest, @@ -375,57 +426,6 @@ async def reorder_faq_pages( ) -@router.get("/faq/status", response_model=FaqStatusResponse) -async def get_faq_status( - _: object = Security(require_api_token), - db: AsyncSession = Depends(get_db_session), - language: str = Query("ru", min_length=2, max_length=10), - fallback: bool = Query(True), -) -> FaqStatusResponse: - requested_lang = FaqService.normalize_language(language) - setting = await FaqService.get_setting(db, requested_lang, fallback=fallback) - - if not setting: - return FaqStatusResponse( - requested_language=requested_lang, - language=requested_lang, - is_enabled=False, - ) - - return FaqStatusResponse( - requested_language=requested_lang, - language=setting.language, - is_enabled=bool(setting.is_enabled), - ) - - -@router.put("/faq/status", response_model=FaqStatusResponse) -async def update_faq_status( - payload: Optional[FaqStatusUpdateRequest] = Body(None), - language: str = Query("ru", min_length=2, max_length=10), - is_enabled: Optional[bool] = Query(None), - _: object = Security(require_api_token), - db: AsyncSession = Depends(get_db_session), -) -> FaqStatusResponse: - resolved_language = FaqService.normalize_language( - payload.language if payload and payload.language else language - ) - - enabled_status = payload.is_enabled if payload else is_enabled - if enabled_status is None: - raise HTTPException( - status.HTTP_400_BAD_REQUEST, "Parameter 'is_enabled' is required" - ) - - setting = await FaqService.set_enabled(db, resolved_language, enabled_status) - - return FaqStatusResponse( - requested_language=resolved_language, - language=setting.language, - is_enabled=bool(setting.is_enabled), - ) - - @router.get("/service-rules", response_model=ServiceRulesResponse) async def get_service_rules( _: object = Security(require_api_token),