Goal-Calibration/app/ScheduledNode/UseCases/GetTodaysSchedule.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');
}
);
}
}