"""Application Exceptions.""" from oto import response from oto import status as response_code from oto.adaptors.flask import flaskify from conflict_manager.constants import error as error_const class RequestError(Exception): """Request Error Exception class.""" def __init__( self, message, error_code=error_const.ERROR_CODE_BAD_REQUEST, status_code=response_code.BAD_REQUEST): """Constructor. Args: message (str/dict): Response message error_code (str): Error code status_code (int): HTTP Error code """ super().__init__() self.message = message self.error_code = error_code self.status_code = status_code def __str__(self): """Convert message to string.""" return str(self.message) def make_flask_response(self): """Make Flask Response.""" return flaskify(response.create_error_response( self.error_code, self.message, status=self.status_code)) class ValidationError(RequestError): """Validation Error Exception class.""" def __init__(self, message): """Constructor. Args: message (str/dict): Response message """ super().__init__(message, error_code=error_const.ERROR_CODE_VALIDATION) class ServiceResponseError(RequestError): """Service Response Error Exception class.""" def __init__(self, message, error_code, status_code): """Constructor. Args: message (str/dict): Response message """ super().__init__(message, error_code, status_code)