feat: add docs and custom exc
This commit is contained in:
16
src/main.py
16
src/main.py
@@ -3,13 +3,14 @@ from contextlib import asynccontextmanager
|
||||
import secrets
|
||||
from typing import AsyncGenerator
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from fastapi import Depends, FastAPI, status
|
||||
from fastapi import Depends,FastAPI
|
||||
from fastapi.exceptions import RequestValidationError
|
||||
from fastapi.openapi.docs import get_redoc_html, get_swagger_ui_html
|
||||
from fastapi.responses import HTMLResponse
|
||||
from fastapi.security import HTTPBasic, HTTPBasicCredentials
|
||||
from src.application.commands import PollKycSessionsCommand
|
||||
from src.application.domain.enums import LogFormat,LogLevel
|
||||
from src.application.domain.exceptions import ApplicationException
|
||||
from src.application.domain.exceptions import ApplicationException,UnauthorizedException
|
||||
from src.infrastructure.beorg import BeorgService
|
||||
from src.infrastructure.config.settings import get_settings
|
||||
from src.infrastructure.database.context import async_session_maker
|
||||
@@ -18,7 +19,7 @@ from src.infrastructure.vault import JwtKeyStore, start_jwt_keys_scheduler
|
||||
from src.infrastructure.utils import generate_instance_id
|
||||
from src.infrastructure.logger import logger
|
||||
from src.infrastructure.config import settings
|
||||
from src.presentation.handlers import application_exception_handler, unhandled_exception_handler
|
||||
from src.presentation.handlers import application_exception_handler,unhandled_exception_handler,validation_exception_handler
|
||||
from src.presentation.middleware import TraceIDMiddleware, SecurityHeadersMiddleware
|
||||
from src.presentation.routing import kyc_router
|
||||
|
||||
@@ -29,11 +30,9 @@ async def verify_credentials(credentials: HTTPBasicCredentials = Depends(securit
|
||||
user_ok = secrets.compare_digest(credentials.username, settings.DOCS_USERNAME)
|
||||
pass_ok = secrets.compare_digest(credentials.password, settings.DOCS_PASSWORD)
|
||||
if not (user_ok and pass_ok):
|
||||
raise ApplicationException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
message='Unauthorized',
|
||||
headers={'WWW-Authenticate': 'Basic'},
|
||||
)
|
||||
exception = UnauthorizedException()
|
||||
exception.headers = {'WWW-Authenticate': 'Basic'}
|
||||
raise exception
|
||||
return credentials
|
||||
|
||||
|
||||
@@ -97,6 +96,7 @@ app: FastAPI = FastAPI(
|
||||
)
|
||||
|
||||
app.add_exception_handler(ApplicationException, application_exception_handler)
|
||||
app.add_exception_handler(RequestValidationError, validation_exception_handler)
|
||||
app.add_exception_handler(Exception, unhandled_exception_handler)
|
||||
|
||||
app.include_router(kyc_router)
|
||||
|
||||
Reference in New Issue
Block a user