mirror of
https://github.com/nextcloud/tables.git
synced 2026-02-02 00:05:11 +00:00
28 lines
892 B
PHP
28 lines
892 B
PHP
<?php
|
|
|
|
namespace OCA\Tables\Controller;
|
|
|
|
use Closure;
|
|
use OCA\Tables\Errors\InternalError;
|
|
use OCA\Tables\Errors\NotFoundError;
|
|
use OCA\Tables\Errors\PermissionError;
|
|
use OCP\AppFramework\Http;
|
|
use OCP\AppFramework\Http\DataResponse;
|
|
|
|
trait Errors {
|
|
protected function handleError(Closure $callback): DataResponse {
|
|
try {
|
|
return new DataResponse($callback());
|
|
} catch (PermissionError $e) {
|
|
$message = ['message' => $e->getMessage()];
|
|
return new DataResponse($message, Http::STATUS_FORBIDDEN);
|
|
} catch (NotFoundError $e) {
|
|
$message = ['message' => $e->getMessage()];
|
|
return new DataResponse($message, Http::STATUS_NOT_FOUND);
|
|
} catch (InternalError|\Exception $e) {
|
|
$message = ['message' => $e->getMessage()];
|
|
return new DataResponse($message, Http::STATUS_INTERNAL_SERVER_ERROR);
|
|
}
|
|
}
|
|
}
|