test get todays schedule and use case with request

This commit is contained in:
Yisroel Baum 2026-04-28 22:38:43 +03:00
parent 0ea300f4d2
commit 2047cd72e7
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
3 changed files with 117 additions and 0 deletions

View file

@ -0,0 +1,35 @@
<?php
namespace App\ScheduledNode\UseCases;
use App\ScheduledNode\ScheduledNode;
use App\ScheduledNode\ScheduledNodeRepository;
use App\User\UserRepository;
use DateTimeImmutable;
class GetTodaysSchedule
{
public function __construct(
private UserRepository $userRepo,
private ScheduledNodeRepository $scheduledNodeRepo,
) {}
/**
* @return ScheduledNode[]
*/
public function execute(GetTodaysScheduleRequest $request): array
{
$date = new DateTimeImmutable($request->date);
$userId = $request->userId;
$user = $this->userRepo->find($userId);
$scheduledNodes = $this->scheduledNodeRepo->findByUser($user);
return array_filter(
$scheduledNodes,
function (ScheduledNode $node) use ($date) {
return $node->getDate()->format('Y-m-d')
=== $date->format('Y-m-d');
}
);
}
}

View file

@ -0,0 +1,11 @@
<?php
namespace App\ScheduledNode\UseCases;
class GetTodaysScheduleRequest
{
public function __construct(
public ?string $date,
public ?int $userId,
) {}
}