35 lines
941 B
PHP
35 lines
941 B
PHP
<?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');
|
|
}
|
|
);
|
|
}
|
|
}
|