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 +}