public function __invoke(Request $request, Response $response, callable $out = null) { $restResponseBuilder = new CASSResponseBuilder($response); $restResponseBuilder->getDecorators()->clear(); $restResponseBuilder->setJson($this->apiDocsService->buildAPIDocs()); $restResponseBuilder->setStatusSuccess(); return $restResponseBuilder->build(); }
public function __invoke(Request $request, Response $response, $error) { $responseBuilder = new CASSResponseBuilder($response); $responseBuilder->setStatusBadRequest(); if ($error === null) { $errorType = '404'; $responseBuilder->setError($error); $responseBuilder->setStatusNotFound()->setError('404 Not Found'); } else { if ($error instanceof \Exception) { $errorType = get_class($error); $responseBuilder->setError($error); try { throw $error; } catch (EntityNotFoundException $e) { $responseBuilder->setStatusNotFound(); } catch (InvalidJSONSchema $e) { $responseBuilder->setStatusBadRequest(); } catch (BadCommandCallException $e) { $responseBuilder->setStatusBadRequest(); } catch (NotFoundException $e) { $responseBuilder->setStatusNotFound(); } catch (PermissionsDeniedException $e) { $responseBuilder->setStatusNotAllowed(); } catch (\Exception $e) { $responseBuilder->setStatusInternalError(); } } else { if ($error instanceof \Error) { throw $error; } else { if (is_int($error)) { $errorType = "INT_CODE"; $responseBuilder->setError(sprintf("ErrorCode: %d", $error)); } else { throw new \Exception(sprintf('Unknown error: %s', get_class($error))); } } } } return $responseBuilder->setJson(['error_type' => $errorType])->build(); }