test get todays schedule and use case with request
This commit is contained in:
parent
0ea300f4d2
commit
2047cd72e7
3 changed files with 117 additions and 0 deletions
35
app/ScheduledNode/UseCases/GetTodaysSchedule.php
Normal file
35
app/ScheduledNode/UseCases/GetTodaysSchedule.php
Normal 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');
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
11
app/ScheduledNode/UseCases/GetTodaysScheduleRequest.php
Normal file
11
app/ScheduledNode/UseCases/GetTodaysScheduleRequest.php
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
namespace App\ScheduledNode\UseCases;
|
||||
|
||||
class GetTodaysScheduleRequest
|
||||
{
|
||||
public function __construct(
|
||||
public ?string $date,
|
||||
public ?int $userId,
|
||||
) {}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue