. * */ namespace OCA\Contacts\Middleware; use OCA\Contacts\Controller, OCA\Contacts\JSONResponse, OCP\AppFramework\Middleware, OCP\AppFramework\Http\Response, OCP\AppFramework\Http as HttpStatus; /** * Used to intercept exceptions thrown in controllers and backends * and transform them into valid HTTP responses. */ class Http extends Middleware { /** * If an Exception is being caught, return a JSON error response with * a suitable status code * @param Controller $controller the controller that is being called * @param string $methodName the name of the method that will be called on * the controller * @param \Exception $exception the thrown exception * @return Response a Response object */ public function afterException($controller, $methodName, \Exception $exception) { \OCP\Util::writeLog('contacts', __METHOD__.' method: '.$methodName, \OCP\Util::DEBUG); // If there's no proper status code associated, set it to 500. $response = new JSONResponse(); if($exception->getCode() < 100) { $response->setStatus(HttpStatus::STATUS_INTERNAL_SERVER_ERROR); } else { $response->setStatus($exception->getCode()); } $response->setErrorMessage($exception->getMessage()); \OCP\Util::logException('contacts', $exception); return $response; } }