-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathFindLastQueryHandler.php
More file actions
30 lines (23 loc) · 921 Bytes
/
FindLastQueryHandler.php
File metadata and controls
30 lines (23 loc) · 921 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
declare (strict_types=1);
namespace CodelyTv\Mooc\Videos\Application\FindLast;
use CodelyTv\Mooc\Videos\Domain\Video;
use CodelyTv\Mooc\Videos\Domain\VideoRepository;
use CodelyTv\Shared\Domain\Bus\Query\QueryHandler;
use CodelyTv\Shared\Domain\Criteria\Criteria;
use CodelyTv\Shared\Domain\Criteria\Filters;
use CodelyTv\Shared\Domain\Criteria\Order;
use CodelyTv\Shared\Domain\Criteria\OrderBy;
use CodelyTv\Shared\Domain\Criteria\OrderType;
final class FindLastQueryHandler implements QueryHandler
{
public function __construct(private VideoRepository $videoRepository)
{
}
public function __invoke(FindLastQuery $query): ?Video
{
$order = new Order(new OrderBy('created'), OrderType::desc());
$criteria = new Criteria(filters: new Filters([]), order: $order, offset: null, limit: 1);
return $this->videoRepository->searchByCriteria($criteria)->first();
}
}