from modules.app import app from classes.exceptions import * from starlette.status import HTTP_404_NOT_FOUND, HTTP_406_NOT_ACCEPTABLE, HTTP_409_CONFLICT @app.exception_handler(AlbumNotFoundError) async def album_not_found_exception_handler(request: Request, exc: AlbumNotFoundError): return JSONResponse( status_code=HTTP_404_NOT_FOUND, content={"detail": f"Could not find an album with id '{exc.id}'."}, ) @app.exception_handler(AlbumAlreadyExistsError) async def album_already_exists_exception_handler(request: Request, exc: AlbumAlreadyExistsError): return JSONResponse( status_code=HTTP_409_CONFLICT, content={"detail": f"Album with name '{exc.name}' already exists."}, ) @app.exception_handler(AlbumIncorrectError) async def album_incorrect_exception_handler(request: Request, exc: AlbumIncorrectError): return JSONResponse( status_code=HTTP_406_NOT_ACCEPTABLE, content={"detail": f"Album {exc.place} invalid: {exc.error}"}, )