from typing import Literal class AlbumNotFoundError(Exception): def __init__(self, id: str): self.id = id self.openapi = { "description": "Album Does Not Exist", "content": { "application/json": { "example": { "detail": "Could not find album with id '{id}'." } } } } class AlbumNameNotFoundError(Exception): def __init__(self, name: str): self.name = name self.openapi = { "description": "Album Does Not Exist", "content": { "application/json": { "example": { "detail": "Could not find album with name '{name}'." } } } } class AlbumAlreadyExistsError(Exception): def __init__(self, name: str): self.name = name self.openapi = { "description": "Album Already Exists", "content": { "application/json": { "example": { "detail": "Album with name '{name}' already exists." } } } } class AlbumIncorrectError(Exception): def __init__(self, place: Literal["name", "title"], error: str) -> None: self.place = place self.error = error self.openapi = { "description": "Album Name/Title Invalid", "content": { "application/json": { "example": { "detail": "Album {name/title} invalid: {error}" } } } } class PhotoNotFoundError(Exception): def __init__(self, id: str): self.id = id self.openapi = { "description": "Photo Does Not Exist", "content": { "application/json": { "example": { "detail": "Could not find photo with id '{id}'." } } } } class SearchPageInvalidError(Exception): def __init__(self): self.openapi = { "description": "Invalid Page", "content": { "application/json": { "example": { "detail": "Parameters 'page' and 'page_size' must be greater or equal to 1." } } } } class SearchTokenInvalidError(Exception): def __init__(self): self.openapi = { "description": "Invalid Token", "content": { "application/json": { "example": { "detail": "Invalid search token." } } } } class UserEmailCodeInvalid(Exception): def __init__(self): self.openapi = { "description": "Invalid Email Code", "content": { "application/json": { "example": { "detail": "Confirmation code is invalid." } } } } class UserAlreadyExists(Exception): def __init__(self): self.openapi = { "description": "User Already Exists", "content": { "application/json": { "example": { "detail": "User with this username already exists." } } } } class UserCredentialsInvalid(Exception): def __init__(self): self.openapi = { "description": "Invalid Credentials", "content": { "application/json": { "example": { "detail": "Invalid credentials." } } } }