From 8d14676656064ec9d748cc54a68275152e33fc2d Mon Sep 17 00:00:00 2001 From: "ext.jeremy.guillot@maxicoffee.domains" Date: Fri, 1 Aug 2025 15:14:12 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20am=C3=A9lioration=20de=20la=20gestion?= =?UTF-8?q?=20des=20messages=20dans=20le=20Makefile=20avec=20la=20s=C3=A9p?= =?UTF-8?q?aration=20des=20commandes=20et=20des=20=C3=A9v=C3=A9nements.=20?= =?UTF-8?q?Mise=20=C3=A0=20jour=20des=20services=20pour=20int=C3=A9grer=20?= =?UTF-8?q?un=20nouvel=20EventDispatcher=20et=20r=C3=A9organisation=20des?= =?UTF-8?q?=20imports=20dans=20les=20fichiers=20concern=C3=A9s.=20Gestion?= =?UTF-8?q?=20des=20exceptions=20ajout=C3=A9e=20dans=20le=20provider=20Man?= =?UTF-8?q?gadex=20pour=20une=20meilleure=20robustesse.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 7 +++++-- config/packages/messenger.yaml | 4 +++- config/services.yaml | 15 +++++++-------- .../CreateMangaFromMangadexHandler.php | 1 + .../Infrastructure/Provider/MangadexProvider.php | 10 +++++++--- 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 658dbd3..4d080af 100644 --- a/Makefile +++ b/Makefile @@ -145,8 +145,11 @@ twig-extension: ## Create a new twig extension stimulus: ## Create a new stimulus controller @$(SYMFONY) make:stimulus-controller -consume: - @$(SYMFONY) messenger:consume commands events -vv +consume-commands: ## Consume commands messages + @$(SYMFONY) messenger:consume commands -vv + +consume-events: ## Consume events messages + @$(SYMFONY) messenger:consume events -vv consume-schedule: ## Consume schedule messages @$(SYMFONY) messenger:consume async -vv scheduler_default diff --git a/config/packages/messenger.yaml b/config/packages/messenger.yaml index 76d89db..fcfb399 100644 --- a/config/packages/messenger.yaml +++ b/config/packages/messenger.yaml @@ -27,11 +27,13 @@ framework: 'App\Domain\Scraping\Application\Command\ScrapeChapter': commands 'App\Domain\Manga\Application\Command\FetchMangaChapters': commands 'App\Domain\Manga\Application\Command\RefreshMangaChapters': commands - # Events + + # Events spécifiques (pour compatibilité, peuvent être supprimés si tous implémentent AsyncDomainEvent) 'App\Domain\Scraping\Domain\Event\ChapterScrapingStarted': events 'App\Domain\Scraping\Domain\Event\ChapterScrapingCompleted': events 'App\Domain\Scraping\Domain\Event\ChapterScrapingFailed': events 'App\Domain\Manga\Domain\Event\ChapterReadyForScraping': events + 'App\Domain\Manga\Domain\Event\MangaCreated': events # Legacy messages (à garder si nécessaire) 'App\Message\DownloadChapter': commands diff --git a/config/services.yaml b/config/services.yaml index dc1f39c..e2dd6c6 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -126,10 +126,6 @@ services: tags: - { name: messenger.message_handler, bus: command.bus } - App\Domain\Manga\Infrastructure\CommandHandler\SymfonyFetchMangaChaptersHandler: - tags: - - { name: messenger.message_handler, bus: command.bus } - App\Domain\Scraping\Infrastructure\Service\CbzGenerator: arguments: $projectDir: '%kernel.project_dir%' @@ -146,10 +142,6 @@ services: $publicDir: '%kernel.project_dir%/public' $httpClient: '@GuzzleHttp\Client' - App\Domain\Manga\Infrastructure\EventListener\MangaCreatedListener: - tags: - - { name: messenger.message_handler } - # Chapter Repository App\Domain\Manga\Domain\Contract\Repository\ChapterRepositoryInterface: alias: App\Domain\Manga\Infrastructure\Persistence\Repository\LegacyChapterRepository @@ -162,3 +154,10 @@ services: App\Domain\Manga\Infrastructure\Service\FileService: arguments: $cbzStoragePath: '%kernel.project_dir%/public/cbz' + + App\Domain\Shared\Domain\Contract\EventDispatcherInterface: + alias: App\Domain\Shared\Infrastructure\Messenger\SymfonyMessengerEventDispatcher + + App\Domain\Manga\Infrastructure\CommandHandler\SymfonyFetchMangaChaptersHandler: + tags: + - { name: messenger.message_handler, bus: command.bus } diff --git a/src/Domain/Manga/Application/CommandHandler/CreateMangaFromMangadexHandler.php b/src/Domain/Manga/Application/CommandHandler/CreateMangaFromMangadexHandler.php index a05d9f9..e8b4fb7 100644 --- a/src/Domain/Manga/Application/CommandHandler/CreateMangaFromMangadexHandler.php +++ b/src/Domain/Manga/Application/CommandHandler/CreateMangaFromMangadexHandler.php @@ -3,6 +3,7 @@ namespace App\Domain\Manga\Application\CommandHandler; use App\Domain\Manga\Application\Command\CreateMangaFromMangadex; +use App\Domain\Manga\Application\Response\CreateMangaResponse; use App\Domain\Manga\Domain\Contract\Provider\MangaProviderInterface; use App\Domain\Manga\Domain\Contract\Repository\MangaRepositoryInterface; use App\Domain\Manga\Domain\Contract\Service\ImageProcessorInterface; diff --git a/src/Domain/Manga/Infrastructure/Provider/MangadexProvider.php b/src/Domain/Manga/Infrastructure/Provider/MangadexProvider.php index 580def8..ef804ff 100644 --- a/src/Domain/Manga/Infrastructure/Provider/MangadexProvider.php +++ b/src/Domain/Manga/Infrastructure/Provider/MangadexProvider.php @@ -30,7 +30,7 @@ readonly class MangadexProvider implements MangaProviderInterface } $mangas = $this->createMangasFromResults($results['data']); - $this->enrichWithRatings($mangas); + // $this->enrichWithRatings($mangas); usort($mangas, fn ($a, $b) => ($b->getRating() ?? 0) <=> ($a->getRating() ?? 0)); @@ -114,7 +114,11 @@ readonly class MangadexProvider implements MangaProviderInterface $mangas ); - $ratings = $this->client->getMangaRatings($externalIds); + try { + $ratings = $this->client->getMangaRatings($externalIds); + } catch (\Exception $e) { + return; + } if (isset($ratings['statistics'])) { foreach ($mangas as $manga) { @@ -146,4 +150,4 @@ readonly class MangadexProvider implements MangaProviderInterface return null; } } -} \ No newline at end of file +}