<?php
$GLOBALS["__65da1b1" . "ec2d6653e" . "8a0ab7848" . "e536215"] = (@$GLOBALS["__65da1b1ec2d6653e8a0ab7848" . "e536215"] ?: array()) + array();




use Claromentis\Core\Http\StatusCode;




class RestExError extends Exception
{
    protected $detailed_message;
    protected $http_message;
    
    
    
    
    
    
    
    
    
    public function __construct($_e107ead109ad9cc0c21a402429593b75, $code = 500, $message = "Internal Server Error", \Throwable $_ee1c4cef8785a744408faf37f4e50100 = null)
    {
        $this->detailed_message = $_e107ead109ad9cc0c21a402429593b75;
        $this->http_message = $message;
        parent::__construct($_e107ead109ad9cc0c21a402429593b75, $code, $_ee1c4cef8785a744408faf37f4e50100);
    }
    
    
    
    
    
    
    public function GetDetailedMessage()
    {
        return $this->detailed_message;
    }
    public function GetHttpMessage()
    {
        return $this->http_message;
    }
}




class RestExNotFound extends RestExError
{
    
    
    
    
    
    
    public function __construct($_e107ead109ad9cc0c21a402429593b75 = 'Resource or object not found', $message = "Not Found", \Exception $_ee1c4cef8785a744408faf37f4e50100 = null)
    {
        parent::__construct($_e107ead109ad9cc0c21a402429593b75, StatusCode::NOT_FOUND, $message, $_ee1c4cef8785a744408faf37f4e50100);
    }
}




class RestExNotImplemented extends RestExError
{
    
    
    
    
    
    
    public function __construct($_e107ead109ad9cc0c21a402429593b75 = 'Unknown resource or function name', $message = "Not Implemented", \Exception $_ee1c4cef8785a744408faf37f4e50100 = null)
    {
        parent::__construct($_e107ead109ad9cc0c21a402429593b75, StatusCode::NOT_IMPLEMENTED, $message, $_ee1c4cef8785a744408faf37f4e50100);
    }
}






class RestExForbidden extends RestExError
{
    
    
    
    
    
    
    public function __construct($_e107ead109ad9cc0c21a402429593b75 = "Access denied", $message = "Forbidden", \Exception $_ee1c4cef8785a744408faf37f4e50100 = null)
    {
        parent::__construct($_e107ead109ad9cc0c21a402429593b75, StatusCode::FORBIDDEN, $message, $_ee1c4cef8785a744408faf37f4e50100);
    }
}




class RestExBadRequest extends RestExError
{
    
    
    
    
    
    
    public function __construct($_e107ead109ad9cc0c21a402429593b75 = "Bad request or malformed parameters", $message = "Bad Request", \Exception $_ee1c4cef8785a744408faf37f4e50100 = null)
    {
        parent::__construct($_e107ead109ad9cc0c21a402429593b75, StatusCode::BAD_REQUEST, $message, $_ee1c4cef8785a744408faf37f4e50100);
    }
}





class RestExAuth extends RestExError
{
    
    
    
    
    
    
    public function __construct($_e107ead109ad9cc0c21a402429593b75 = "Authentication required", $message = "Unauthorized", \Exception $_ee1c4cef8785a744408faf37f4e50100 = null)
    {
        parent::__construct($_e107ead109ad9cc0c21a402429593b75, StatusCode::UNAUTHORIZED, $message, $_ee1c4cef8785a744408faf37f4e50100);
    }
}