diff options
Diffstat (limited to 'src/Errors/ErrorResponse.php')
-rw-r--r-- | src/Errors/ErrorResponse.php | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/Errors/ErrorResponse.php b/src/Errors/ErrorResponse.php new file mode 100644 index 0000000..6248659 --- /dev/null +++ b/src/Errors/ErrorResponse.php @@ -0,0 +1,30 @@ +<?php + +namespace App\Errors; + +use Symfony\Component\HttpFoundation\JsonResponse; + +class ErrorResponse extends JsonResponse +{ + public function __construct(ErrorCode $code, string $message, int $httpCode) + { + parent::__construct( + [ + "errcode" => $code, + "error" => $message, + ], + $httpCode + ); + } + + public static function fromException(Exception $exception): self + { + $self = new self($exception->getErrorCode(), $exception->getMessage(), $exception->getCode()); + + $self->setData( + json_decode($self->data, true) + $exception->getAdditionalData() + ); + + return $self; + } +} |