wrap get todays schedule in try catch

This commit is contained in:
Yisroel Baum 2026-05-01 10:25:00 +03:00
parent 659f9b88f1
commit f315db6d00
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9

View file

@ -2,9 +2,11 @@
namespace App\ScheduledNode; namespace App\ScheduledNode;
use App\Exceptions\BadRequestException;
use App\ScheduledNode\UseCases\GetTodaysSchedule; use App\ScheduledNode\UseCases\GetTodaysSchedule;
use App\ScheduledNode\UseCases\GetTodaysScheduleRequest; use App\ScheduledNode\UseCases\GetTodaysScheduleRequest;
use App\User\User; use App\User\User;
use DomainException;
use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ServerRequestInterface as Request;
@ -26,21 +28,31 @@ class ScheduledNodeController
$queryParams = $request->getQueryParams(); $queryParams = $request->getQueryParams();
$date = $queryParams['date'] ?? null; $date = $queryParams['date'] ?? null;
if ($date === null || $date === '') { if ($date === '') {
$date = null;
}
try {
$scheduledNodes = $getTodaysSchedule->execute(
new GetTodaysScheduleRequest(
date: $date,
userId: $user->getId(),
)
);
} catch (BadRequestException $exception) {
$response->getBody()->write( $response->getBody()->write(
json_encode(['error' => 'date is required']) json_encode(['error' => $exception->getMessage()])
); );
return $response->withStatus(400) return $response->withStatus(400)
->withHeader('Content-Type', 'application/json'); ->withHeader('Content-Type', 'application/json');
} catch (DomainException $exception) {
$response->getBody()->write(
json_encode(['error' => $exception->getMessage()])
);
return $response->withStatus(404)
->withHeader('Content-Type', 'application/json');
} }
$scheduledNodes = $getTodaysSchedule->execute(
new GetTodaysScheduleRequest(
date: $date,
userId: $user->getId(),
)
);
$data = array_values(array_map( $data = array_values(array_map(
function (ScheduledNode $scheduledNode) { function (ScheduledNode $scheduledNode) {
return [ return [