Nextcloud-App/lib/Controller/Errors.php

24 lines
672 B
PHP

<?php
declare(strict_types=1);
// SPDX-FileCopyrightText: BVSC e.V. <no@example.com>
// SPDX-License-Identifier: AGPL-3.0-or-later
namespace OCA\UPschooling\Controller;
use Closure;
use OCA\UPschooling\Exceptions\RoomNotFoundException;
use OCA\UPschooling\Exceptions\TicketNotFoundException;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
trait Errors {
protected function handleNotFound(Closure $callback): DataResponse {
try {
return new DataResponse($callback());
} catch (TicketNotFoundException|RoomNotFoundException $e) {
$result = $e->getResult();
return new DataResponse($result->getMeta(), $result->getStatusCode());
}
}
}