aboutsummaryrefslogtreecommitdiffhomepage
path: root/infrastructure/Exceptions/Formatters/ExceptionFormatter.php
diff options
context:
space:
mode:
Diffstat (limited to 'infrastructure/Exceptions/Formatters/ExceptionFormatter.php')
-rw-r--r--infrastructure/Exceptions/Formatters/ExceptionFormatter.php30
1 files changed, 30 insertions, 0 deletions
diff --git a/infrastructure/Exceptions/Formatters/ExceptionFormatter.php b/infrastructure/Exceptions/Formatters/ExceptionFormatter.php
new file mode 100644
index 0000000..920ea69
--- /dev/null
+++ b/infrastructure/Exceptions/Formatters/ExceptionFormatter.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Infrastructure\Exceptions\Formatters;
+
+use Exception;
+use Illuminate\Http\JsonResponse;
+use Optimus\Heimdal\Formatters\BaseFormatter;
+
+class ExceptionFormatter extends BaseFormatter
+{
+ public function format(JsonResponse $response, Exception $e, array $reporterResponses)
+ {
+ $response->setStatusCode(500);
+ $data = $response->getData(true);
+
+ if ($this->debug) {
+ $data = array_merge($data, [
+ 'code' => $e->getCode(),
+ 'message' => $e->getMessage(),
+ 'exception' => (string)$e,
+ 'line' => $e->getLine(),
+ 'file' => $e->getFile()
+ ]);
+ } else {
+ $data['message'] = $e->getMessage();
+ }
+
+ $response->setData($data);
+ }
+}