24 lines
1006 B
Python
24 lines
1006 B
Python
|
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}"},
|
||
|
)
|