From caff0ec71f5645887888cb7a40feaf18acb31461 Mon Sep 17 00:00:00 2001 From: Flo Date: Mon, 5 Aug 2024 10:27:38 +0000 Subject: [PATCH] analyze --- composer.development.json | 4 ++ config/config.php | 2 + .../External/Analyze/config/routes.php | 25 ++++++++ .../Analyze/config/service_manager.php | 21 +++++++ .../External/Analyze/src/ConfigProvider.php | 16 +++++ .../src/Handler/AnalyzeVideosHandler.php | 34 +++++++++++ .../src/Handler/ReadVideoListHandler.php | 39 ++++++++++++ .../AnalyzeVideosResponseFormatter.php | 50 ++++++++++++++++ .../ReadVideoListResponseFormatter.php | 45 ++++++++++++++ .../VideoList/src/Handler/ReadListHandler.php | 1 - .../src/Repository/VideoRepository.php | 3 +- .../Analyze/config/service_manager.php | 26 ++++++++ .../Analyze/src/ConfigProvider.php | 15 +++++ .../AnalyzeVideos/AnalyzeVideosCommand.php | 13 ++++ .../AnalyzeVideosCommandBuilder.php | 16 +++++ .../AnalyzeVideosCommandHandler.php | 45 ++++++++++++++ .../AnalyzeVideosCommandResult.php | 18 ++++++ .../AnalyzeVideos/Model/VideoChangedModel.php | 32 ++++++++++ .../ReadVideoList/ReadVideoListQuery.php | 36 +++++++++++ .../ReadVideoListQueryBuilder.php | 22 +++++++ .../ReadVideoListQueryHandler.php | 28 +++++++++ .../ReadVideoListQueryResult.php | 20 +++++++ .../src/Repository/AnalyzeVideoRepository.php | 60 +++++++++++++++++++ .../ReadVideoListQueryHandler.php | 1 - .../src/Analyzer/VideoDurationAnalyzer.php | 4 +- .../Video/src/Analyzer/VideoTitleAnalyzer.php | 8 ++- .../Handler/Query/ReadList/ReadListQuery.php | 8 +-- .../Query/ReadList/ReadListQueryBuilder.php | 2 - .../Query/ReadList/ReadListQueryHandler.php | 3 +- 29 files changed, 579 insertions(+), 18 deletions(-) create mode 100644 src/ApiDomain/External/Analyze/config/routes.php create mode 100644 src/ApiDomain/External/Analyze/config/service_manager.php create mode 100644 src/ApiDomain/External/Analyze/src/ConfigProvider.php create mode 100644 src/ApiDomain/External/Analyze/src/Handler/AnalyzeVideosHandler.php create mode 100644 src/ApiDomain/External/Analyze/src/Handler/ReadVideoListHandler.php create mode 100644 src/ApiDomain/External/Analyze/src/ResponseFormatter/AnalyzeVideosResponseFormatter.php create mode 100644 src/ApiDomain/External/Analyze/src/ResponseFormatter/ReadVideoListResponseFormatter.php create mode 100644 src/HandlingDomain/Analyze/config/service_manager.php create mode 100644 src/HandlingDomain/Analyze/src/ConfigProvider.php create mode 100644 src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommand.php create mode 100644 src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommandBuilder.php create mode 100644 src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommandHandler.php create mode 100644 src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommandResult.php create mode 100644 src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/Model/VideoChangedModel.php create mode 100644 src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQuery.php create mode 100644 src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQueryBuilder.php create mode 100644 src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQueryHandler.php create mode 100644 src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQueryResult.php create mode 100644 src/HandlingDomain/Analyze/src/Repository/AnalyzeVideoRepository.php diff --git a/composer.development.json b/composer.development.json index 652b0e0..bc3ac47 100644 --- a/composer.development.json +++ b/composer.development.json @@ -26,6 +26,7 @@ "autoload": { "psr-4": { "MyTube\\API\\Console\\": "src\/ApiDomain\/Console\/src", + "MyTube\\API\\External\\Analyze\\": "src\/ApiDomain\/External\/Analyze\/src", "MyTube\\API\\External\\Authentication\\": "src\/ApiDomain\/External\/Authentication\/src", "MyTube\\API\\External\\Health\\": "src\/ApiDomain\/External\/Health\/src", "MyTube\\API\\External\\Tag\\": "src\/ApiDomain\/External\/Tag\/src", @@ -35,6 +36,7 @@ "MyTube\\API\\External\\VideoList\\": "src\/ApiDomain\/External\/VideoList\/src", "MyTube\\Data\\Business\\": "src\/DataDomain\/Business\/src", "MyTube\\Data\\Log\\": "src\/DataDomain\/Log\/src", + "MyTube\\Handling\\Analyze\\": "src\/HandlingDomain\/Analyze\/src", "MyTube\\Handling\\Registration\\": "src\/HandlingDomain\/Registration\/src", "MyTube\\Handling\\Role\\": "src\/HandlingDomain\/Role\/src", "MyTube\\Handling\\Tag\\": "src\/HandlingDomain\/Tag\/src", @@ -98,6 +100,7 @@ }, "autoload-dev": { "psr-4": { + "MyTube\\API\\External\\Analyze\\": "src\/ApiDomain\/External\/Analyze\/src", "MyTube\\API\\External\\Authentication\\": "src\/ApiDomain\/External\/Authentication\/src", "MyTube\\API\\External\\Health\\": "src\/ApiDomain\/External\/Health\/src", "MyTube\\API\\External\\Tag\\": "src\/ApiDomain\/External\/Tag\/src", @@ -107,6 +110,7 @@ "MyTube\\API\\External\\VideoList\\": "src\/ApiDomain\/External\/VideoList\/src", "MyTube\\Data\\Business\\": "src\/DataDomain\/Business\/src", "MyTube\\Data\\Log\\": "src\/DataDomain\/Log\/src", + "MyTube\\Handling\\Analyze\\": "src\/HandlingDomain\/Analyze\/src", "MyTube\\Handling\\Registration\\": "src\/HandlingDomain\/Registration\/src", "MyTube\\Handling\\Role\\": "src\/HandlingDomain\/Role\/src", "MyTube\\Handling\\Tag\\": "src\/HandlingDomain\/Tag\/src", diff --git a/config/config.php b/config/config.php index b8264f6..a899dfc 100644 --- a/config/config.php +++ b/config/config.php @@ -54,6 +54,7 @@ $aggregator = new ConfigAggregator([ \MyTube\Infrastructure\Session\ConfigProvider::class, // HandlingDomain + \MyTube\Handling\Analyze\ConfigProvider::class, \MyTube\Handling\User\ConfigProvider::class, \MyTube\Handling\UserSession\ConfigProvider::class, \MyTube\Handling\Registration\ConfigProvider::class, @@ -70,6 +71,7 @@ $aggregator = new ConfigAggregator([ \MyTube\API\External\Health\ConfigProvider::class, \MyTube\API\External\User\ConfigProvider::class, \MyTube\API\External\Authentication\ConfigProvider::class, + \MyTube\API\External\Analyze\ConfigProvider::class, \MyTube\API\External\Video\ConfigProvider::class, \MyTube\API\External\VideoList\ConfigProvider::class, \MyTube\API\External\Tag\ConfigProvider::class, diff --git a/src/ApiDomain/External/Analyze/config/routes.php b/src/ApiDomain/External/Analyze/config/routes.php new file mode 100644 index 0000000..0a76afc --- /dev/null +++ b/src/ApiDomain/External/Analyze/config/routes.php @@ -0,0 +1,25 @@ + 'analyze.analyze-videos', + 'path' => '/api/analyze/analyze-videos[/]', + 'allowed_methods' => ['POST'], + 'middleware' => [ + AnalyzeVideosHandler::class, + ], + ], + [ + 'name' => 'analyze.read-video-list', + 'path' => '/api/analyze/read-video-list[/]', + 'allowed_methods' => ['POST'], + 'middleware' => [ + ReadVideoListHandler::class, + ], + ], +]; diff --git a/src/ApiDomain/External/Analyze/config/service_manager.php b/src/ApiDomain/External/Analyze/config/service_manager.php new file mode 100644 index 0000000..763acf2 --- /dev/null +++ b/src/ApiDomain/External/Analyze/config/service_manager.php @@ -0,0 +1,21 @@ + [ + // Handler + AnalyzeVideosHandler::class => AutoWiringFactory::class, + ReadVideoListHandler::class => AutoWiringFactory::class, + + // Response Formatter + AnalyzeVideosResponseFormatter::class => AutoWiringFactory::class, + ReadVideoListResponseFormatter::class => AutoWiringFactory::class, + ], +]; diff --git a/src/ApiDomain/External/Analyze/src/ConfigProvider.php b/src/ApiDomain/External/Analyze/src/ConfigProvider.php new file mode 100644 index 0000000..5e3fff6 --- /dev/null +++ b/src/ApiDomain/External/Analyze/src/ConfigProvider.php @@ -0,0 +1,16 @@ + require __DIR__ . './../config/service_manager.php', + 'routes' => require __DIR__ . '/./../config/routes.php', + ]; + } +} diff --git a/src/ApiDomain/External/Analyze/src/Handler/AnalyzeVideosHandler.php b/src/ApiDomain/External/Analyze/src/Handler/AnalyzeVideosHandler.php new file mode 100644 index 0000000..edd1bc6 --- /dev/null +++ b/src/ApiDomain/External/Analyze/src/Handler/AnalyzeVideosHandler.php @@ -0,0 +1,34 @@ +getAttribute(AnalyzeBodyMiddleware::JSON_DATA); + + $analyzeVideosCommand = $this->analyzeVideosCommandBuilder->build(); + $result = $this->analyzeVideosCommandHandler->execute($analyzeVideosCommand); + + return new SuccessResponse($this->responseFormatter->format($result)); + } +} diff --git a/src/ApiDomain/External/Analyze/src/Handler/ReadVideoListHandler.php b/src/ApiDomain/External/Analyze/src/Handler/ReadVideoListHandler.php new file mode 100644 index 0000000..2f4d285 --- /dev/null +++ b/src/ApiDomain/External/Analyze/src/Handler/ReadVideoListHandler.php @@ -0,0 +1,39 @@ +getAttribute(AnalyzeBodyMiddleware::JSON_DATA); + + $readVideoListQuery = $this->readVideoListQueryBuilder->build( + $data['query'] ?? null, + $data['page'], + $data['perPage'], + $data['onlyTagless'] ?? false, + ); + $result = $this->readVideoListQueryHandler->execute($readVideoListQuery); + + return new SuccessResponse($this->responseFormatter->format($result)); + } +} diff --git a/src/ApiDomain/External/Analyze/src/ResponseFormatter/AnalyzeVideosResponseFormatter.php b/src/ApiDomain/External/Analyze/src/ResponseFormatter/AnalyzeVideosResponseFormatter.php new file mode 100644 index 0000000..d632f66 --- /dev/null +++ b/src/ApiDomain/External/Analyze/src/ResponseFormatter/AnalyzeVideosResponseFormatter.php @@ -0,0 +1,50 @@ +getChangedVideos() as $changedVideo) { + $tags = []; + $newTags = []; + $video = $changedVideo->getVideo(); + + foreach ($changedVideo->getNewTags() as $tag) { + $newTags[] = [ + 'id' => $tag->getId(), + 'description' => $tag->getDescription(), + ]; + } + + foreach ($video->getTags() as $tag) { + $tags[] = [ + 'id' => $tag->getId(), + 'description' => $tag->getDescription(), + ]; + } + + $result[] = [ + 'video' => [ + 'id' => $video->getId(), + 'title' => $video->getTitle(), + 'duration' => gmdate("H:i:s", $video->getDuration()), + 'tags' => $tags, + ], + 'newTags' => $newTags, + 'newDuration' => $changedVideo->isNewDuration() + ]; + } + + return $result; + } +} diff --git a/src/ApiDomain/External/Analyze/src/ResponseFormatter/ReadVideoListResponseFormatter.php b/src/ApiDomain/External/Analyze/src/ResponseFormatter/ReadVideoListResponseFormatter.php new file mode 100644 index 0000000..adcc8da --- /dev/null +++ b/src/ApiDomain/External/Analyze/src/ResponseFormatter/ReadVideoListResponseFormatter.php @@ -0,0 +1,45 @@ +getPaginator(); + $videos = $paginator->getIterator(); + + $items = []; + + /** @var Video $video */ + foreach ($videos as $video) { + $tags = []; + + /** @var Tag $tag */ + foreach ($video->getTags() as $tag) { + $tags[] = [ + 'id' => $tag->getId(), + 'description' => $tag->getDescription() + ]; + } + + $items[] = [ + 'title' => $video->getTitle(), + 'id' => $video->getId(), + 'duration' => $video->getDuration() === null ? 'n. def' : gmdate("H:i:s", $video->getDuration()), + 'tags' => $tags + ]; + } + + return [ + 'total' => $paginator->count(), + 'items' => $items, + ]; + } +} diff --git a/src/ApiDomain/External/VideoList/src/Handler/ReadListHandler.php b/src/ApiDomain/External/VideoList/src/Handler/ReadListHandler.php index 832bfb6..e061542 100644 --- a/src/ApiDomain/External/VideoList/src/Handler/ReadListHandler.php +++ b/src/ApiDomain/External/VideoList/src/Handler/ReadListHandler.php @@ -30,7 +30,6 @@ class ReadListHandler implements RequestHandlerInterface $data['query'] ?? null, $data['page'], $data['perPage'], - $data['onlyTagless'] ?? false, ); $result = $this->readListQueryHandler->execute($readListQuery); diff --git a/src/DataDomain/Business/src/Repository/VideoRepository.php b/src/DataDomain/Business/src/Repository/VideoRepository.php index 6e9a7c6..3767de8 100644 --- a/src/DataDomain/Business/src/Repository/VideoRepository.php +++ b/src/DataDomain/Business/src/Repository/VideoRepository.php @@ -18,7 +18,6 @@ class VideoRepository extends EntityRepository { ?string $query, int $page, int $perPage, - bool $onlyTagless, ?Tag $tag = null, ?string $orderBy = null, string $orderDirection = 'desc' @@ -43,7 +42,7 @@ class VideoRepository extends EntityRepository { ->setParameter('tagId', $tag->getId(), UuidBinaryOrderedTimeType::NAME); } - if ($onlyTagless) { + if (false) { //only tagless $queryBuilder = $queryBuilder ->andWhere( $queryBuilder->expr()->isNull('t.id') ); } diff --git a/src/HandlingDomain/Analyze/config/service_manager.php b/src/HandlingDomain/Analyze/config/service_manager.php new file mode 100644 index 0000000..50e51a7 --- /dev/null +++ b/src/HandlingDomain/Analyze/config/service_manager.php @@ -0,0 +1,26 @@ + [ + /// Repository + AnalyzeVideoRepository::class => AutoWiringFactory::class, + + /// CQRS + // AnalyzeVideos + AnalyzeVideosCommandBuilder::class => AutoWiringFactory::class, + AnalyzeVideosCommandHandler::class => AutoWiringFactory::class, + // Read Video List + ReadVideoListQueryBuilder::class => AutoWiringFactory::class, + ReadVideoListQueryHandler::class => AutoWiringFactory::class, + ], +]; diff --git a/src/HandlingDomain/Analyze/src/ConfigProvider.php b/src/HandlingDomain/Analyze/src/ConfigProvider.php new file mode 100644 index 0000000..35b6e6d --- /dev/null +++ b/src/HandlingDomain/Analyze/src/ConfigProvider.php @@ -0,0 +1,15 @@ + require __DIR__ . './../config/service_manager.php', + ]; + } +} diff --git a/src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommand.php b/src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommand.php new file mode 100644 index 0000000..3f5c556 --- /dev/null +++ b/src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommand.php @@ -0,0 +1,13 @@ +videoRepository = $this->entityManager->getRepository(Video::class); + } + + public function execute(AnalyzeVideosCommand $analyzeVideosCommand): AnalyzeVideosCommandResult + { + $videos = $this->videoRepository->findAll(); + $changedVideos = []; + + /** @var Video $video */ + foreach ($videos as $video) { + $newTags = $this->titleAnalyzer->analyze($video); + $newDuration = $this->durationAnalyzer->analyze($video); + + if (count($newTags) > 0 || $newDuration) { + $changedVideos[] = new VideoChangedModel($video, $newTags, $newDuration); + $this->entityManager->persist($video); + $this->entityManager->flush(); + } + } + + return new AnalyzeVideosCommandResult($changedVideos); + } +} diff --git a/src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommandResult.php b/src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommandResult.php new file mode 100644 index 0000000..401a0a6 --- /dev/null +++ b/src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/AnalyzeVideosCommandResult.php @@ -0,0 +1,18 @@ +changedVideos; + } +} diff --git a/src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/Model/VideoChangedModel.php b/src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/Model/VideoChangedModel.php new file mode 100644 index 0000000..6704019 --- /dev/null +++ b/src/HandlingDomain/Analyze/src/Handler/Command/AnalyzeVideos/Model/VideoChangedModel.php @@ -0,0 +1,32 @@ +video; + } + + public function getNewTags(): ?array + { + return $this->newTags; + } + + public function isNewDuration(): bool + { + return $this->newDuration; + } +} diff --git a/src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQuery.php b/src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQuery.php new file mode 100644 index 0000000..4ecf12b --- /dev/null +++ b/src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQuery.php @@ -0,0 +1,36 @@ +query; + } + + public function getPage(): int + { + return $this->page; + } + + public function getPerPage(): int + { + return $this->perPage; + } + + public function getOnlyTagless(): bool + { + return $this->onlyTagless; + } +} diff --git a/src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQueryBuilder.php b/src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQueryBuilder.php new file mode 100644 index 0000000..102703a --- /dev/null +++ b/src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQueryBuilder.php @@ -0,0 +1,22 @@ +analyzeVideoRepository->findByFilter( + query: $readVideoListQuery->getQuery(), + page: $readVideoListQuery->getPage(), + perPage: $readVideoListQuery->getPerPage(), + onlyTagless: $readVideoListQuery->getOnlyTagless() + ) + ); + } +} diff --git a/src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQueryResult.php b/src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQueryResult.php new file mode 100644 index 0000000..627ec44 --- /dev/null +++ b/src/HandlingDomain/Analyze/src/Handler/Query/ReadVideoList/ReadVideoListQueryResult.php @@ -0,0 +1,20 @@ +paginator; + } +} diff --git a/src/HandlingDomain/Analyze/src/Repository/AnalyzeVideoRepository.php b/src/HandlingDomain/Analyze/src/Repository/AnalyzeVideoRepository.php new file mode 100644 index 0000000..36b4dad --- /dev/null +++ b/src/HandlingDomain/Analyze/src/Repository/AnalyzeVideoRepository.php @@ -0,0 +1,60 @@ + 'v.duration', + 'title' => 'v.title', + 'createdAt' => 'v.createdAt' + ]; + + public function findByFilter( + ?string $query, + int $page, + int $perPage, + bool $onlyTagless, + ?string $orderBy = null, + string $orderDirection = 'asc' + ): Paginator + { + $orderBy = self::FIELD_MAP[$orderBy] ?? self::FIELD_MAP['title']; + + $queryBuilder = $this->entityManager->createQueryBuilder() + ->select('v') + ->from(Video::class, 'v') + ->leftJoin('v.tags', 't'); + + if ($query !== null) { + $query = '%'.$query.'%'; + $queryBuilder = $queryBuilder + ->where('v.title like :query') + ->orWhere('t.description like :query') + ->setParameter('query', $query); + } + + if ($onlyTagless) { + $queryBuilder = $queryBuilder + ->andWhere( $queryBuilder->expr()->isNull('t.id') ); + } + + $queryBuilder->orderBy($orderBy,$orderDirection); + + $queryBuilder->setFirstResult($perPage * ($page - 1)); + $queryBuilder->setMaxResults($perPage); + + return new Paginator($queryBuilder->getQuery()); + } +} diff --git a/src/HandlingDomain/Tag/src/Handler/Query/ReadVideoList/ReadVideoListQueryHandler.php b/src/HandlingDomain/Tag/src/Handler/Query/ReadVideoList/ReadVideoListQueryHandler.php index 0ca9f16..79554b4 100644 --- a/src/HandlingDomain/Tag/src/Handler/Query/ReadVideoList/ReadVideoListQueryHandler.php +++ b/src/HandlingDomain/Tag/src/Handler/Query/ReadVideoList/ReadVideoListQueryHandler.php @@ -44,7 +44,6 @@ class ReadVideoListQueryHandler query: $readVideoListQuery->getQuery(), page: $readVideoListQuery->getPage(), perPage: $readVideoListQuery->getPerPage(), - onlyTagless: false, tag: $tag ) ); diff --git a/src/HandlingDomain/Video/src/Analyzer/VideoDurationAnalyzer.php b/src/HandlingDomain/Video/src/Analyzer/VideoDurationAnalyzer.php index da1693b..6ca3a20 100644 --- a/src/HandlingDomain/Video/src/Analyzer/VideoDurationAnalyzer.php +++ b/src/HandlingDomain/Video/src/Analyzer/VideoDurationAnalyzer.php @@ -15,7 +15,7 @@ class VideoDurationAnalyzer { public function analyze( Video $video - ): void { + ): bool { if ($video->getDuration() === null) { $command = sprintf( "ffprobe -i %s%s -show_entries format=duration -v quiet -of csv='p=0'", @@ -26,7 +26,9 @@ class VideoDurationAnalyzer $duration = shell_exec($command); if ($duration !== null) { $video->setDuration(intval($duration)); + return true; } } + return false; } } diff --git a/src/HandlingDomain/Video/src/Analyzer/VideoTitleAnalyzer.php b/src/HandlingDomain/Video/src/Analyzer/VideoTitleAnalyzer.php index 71b0474..b8456e1 100644 --- a/src/HandlingDomain/Video/src/Analyzer/VideoTitleAnalyzer.php +++ b/src/HandlingDomain/Video/src/Analyzer/VideoTitleAnalyzer.php @@ -31,6 +31,7 @@ class VideoTitleAnalyzer $tags = $this->tagRepository->findAll(); $matches = []; + $appliedMatches = []; /** @var Tag $tag */ foreach ($tags as $tag) { @@ -50,10 +51,13 @@ class VideoTitleAnalyzer /** @var Tag $match */ foreach ($matches as $match) { - $video->addTag($match); + if(!$video->getTags()->contains($match)) { + $appliedMatches[] = $match; + $video->addTag($match); + } } - return $matches; + return $appliedMatches; } private function normalizeString(string $string): string { diff --git a/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQuery.php b/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQuery.php index b0f10c2..d89dd47 100644 --- a/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQuery.php +++ b/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQuery.php @@ -9,8 +9,7 @@ class ReadListQuery public function __construct( private readonly ?string $query, private readonly int $page, - private readonly int $perPage, - private readonly bool $onlyTagless, + private readonly int $perPage ) { } @@ -28,9 +27,4 @@ class ReadListQuery { return $this->perPage; } - - public function getOnlyTagless(): bool - { - return $this->onlyTagless; - } } diff --git a/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQueryBuilder.php b/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQueryBuilder.php index 42fbb84..fb7571a 100644 --- a/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQueryBuilder.php +++ b/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQueryBuilder.php @@ -10,13 +10,11 @@ class ReadListQueryBuilder ?string $query, int $page, int $perPage, - bool $onlyTagless, ): ReadListQuery { return new ReadListQuery( $query, $page, $perPage, - $onlyTagless, ); } } diff --git a/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQueryHandler.php b/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQueryHandler.php index bf2e8b9..e21274a 100644 --- a/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQueryHandler.php +++ b/src/HandlingDomain/VideoList/src/Handler/Query/ReadList/ReadListQueryHandler.php @@ -26,8 +26,7 @@ class ReadListQueryHandler $this->videoRepository->findByFilter( query: $readListQuery->getQuery(), page: $readListQuery->getPage(), - perPage: $readListQuery->getPerPage(), - onlyTagless: $readListQuery->getOnlyTagless() + perPage: $readListQuery->getPerPage() ) ); }