feat: amélioration de la gestion des messages dans le Makefile avec la séparation des commandes et des événements. Mise à jour des services pour intégrer un nouvel EventDispatcher et réorganisation des imports dans les fichiers concernés. Gestion des exceptions ajoutée dans le provider Mangadex pour une meilleure robustesse.
This commit is contained in:
parent
bec1572fcb
commit
8d14676656
7
Makefile
7
Makefile
@@ -145,8 +145,11 @@ twig-extension: ## Create a new twig extension
|
|||||||
stimulus: ## Create a new stimulus controller
|
stimulus: ## Create a new stimulus controller
|
||||||
@$(SYMFONY) make:stimulus-controller
|
@$(SYMFONY) make:stimulus-controller
|
||||||
|
|
||||||
consume:
|
consume-commands: ## Consume commands messages
|
||||||
@$(SYMFONY) messenger:consume commands events -vv
|
@$(SYMFONY) messenger:consume commands -vv
|
||||||
|
|
||||||
|
consume-events: ## Consume events messages
|
||||||
|
@$(SYMFONY) messenger:consume events -vv
|
||||||
|
|
||||||
consume-schedule: ## Consume schedule messages
|
consume-schedule: ## Consume schedule messages
|
||||||
@$(SYMFONY) messenger:consume async -vv scheduler_default
|
@$(SYMFONY) messenger:consume async -vv scheduler_default
|
||||||
|
|||||||
@@ -27,11 +27,13 @@ framework:
|
|||||||
'App\Domain\Scraping\Application\Command\ScrapeChapter': commands
|
'App\Domain\Scraping\Application\Command\ScrapeChapter': commands
|
||||||
'App\Domain\Manga\Application\Command\FetchMangaChapters': commands
|
'App\Domain\Manga\Application\Command\FetchMangaChapters': commands
|
||||||
'App\Domain\Manga\Application\Command\RefreshMangaChapters': 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\ChapterScrapingStarted': events
|
||||||
'App\Domain\Scraping\Domain\Event\ChapterScrapingCompleted': events
|
'App\Domain\Scraping\Domain\Event\ChapterScrapingCompleted': events
|
||||||
'App\Domain\Scraping\Domain\Event\ChapterScrapingFailed': events
|
'App\Domain\Scraping\Domain\Event\ChapterScrapingFailed': events
|
||||||
'App\Domain\Manga\Domain\Event\ChapterReadyForScraping': events
|
'App\Domain\Manga\Domain\Event\ChapterReadyForScraping': events
|
||||||
|
'App\Domain\Manga\Domain\Event\MangaCreated': events
|
||||||
|
|
||||||
# Legacy messages (à garder si nécessaire)
|
# Legacy messages (à garder si nécessaire)
|
||||||
'App\Message\DownloadChapter': commands
|
'App\Message\DownloadChapter': commands
|
||||||
|
|||||||
@@ -126,10 +126,6 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: messenger.message_handler, bus: command.bus }
|
- { 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:
|
App\Domain\Scraping\Infrastructure\Service\CbzGenerator:
|
||||||
arguments:
|
arguments:
|
||||||
$projectDir: '%kernel.project_dir%'
|
$projectDir: '%kernel.project_dir%'
|
||||||
@@ -146,10 +142,6 @@ services:
|
|||||||
$publicDir: '%kernel.project_dir%/public'
|
$publicDir: '%kernel.project_dir%/public'
|
||||||
$httpClient: '@GuzzleHttp\Client'
|
$httpClient: '@GuzzleHttp\Client'
|
||||||
|
|
||||||
App\Domain\Manga\Infrastructure\EventListener\MangaCreatedListener:
|
|
||||||
tags:
|
|
||||||
- { name: messenger.message_handler }
|
|
||||||
|
|
||||||
# Chapter Repository
|
# Chapter Repository
|
||||||
App\Domain\Manga\Domain\Contract\Repository\ChapterRepositoryInterface:
|
App\Domain\Manga\Domain\Contract\Repository\ChapterRepositoryInterface:
|
||||||
alias: App\Domain\Manga\Infrastructure\Persistence\Repository\LegacyChapterRepository
|
alias: App\Domain\Manga\Infrastructure\Persistence\Repository\LegacyChapterRepository
|
||||||
@@ -162,3 +154,10 @@ services:
|
|||||||
App\Domain\Manga\Infrastructure\Service\FileService:
|
App\Domain\Manga\Infrastructure\Service\FileService:
|
||||||
arguments:
|
arguments:
|
||||||
$cbzStoragePath: '%kernel.project_dir%/public/cbz'
|
$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 }
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace App\Domain\Manga\Application\CommandHandler;
|
namespace App\Domain\Manga\Application\CommandHandler;
|
||||||
|
|
||||||
use App\Domain\Manga\Application\Command\CreateMangaFromMangadex;
|
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\Provider\MangaProviderInterface;
|
||||||
use App\Domain\Manga\Domain\Contract\Repository\MangaRepositoryInterface;
|
use App\Domain\Manga\Domain\Contract\Repository\MangaRepositoryInterface;
|
||||||
use App\Domain\Manga\Domain\Contract\Service\ImageProcessorInterface;
|
use App\Domain\Manga\Domain\Contract\Service\ImageProcessorInterface;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ readonly class MangadexProvider implements MangaProviderInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
$mangas = $this->createMangasFromResults($results['data']);
|
$mangas = $this->createMangasFromResults($results['data']);
|
||||||
$this->enrichWithRatings($mangas);
|
// $this->enrichWithRatings($mangas);
|
||||||
|
|
||||||
usort($mangas, fn ($a, $b) => ($b->getRating() ?? 0) <=> ($a->getRating() ?? 0));
|
usort($mangas, fn ($a, $b) => ($b->getRating() ?? 0) <=> ($a->getRating() ?? 0));
|
||||||
|
|
||||||
@@ -114,7 +114,11 @@ readonly class MangadexProvider implements MangaProviderInterface
|
|||||||
$mangas
|
$mangas
|
||||||
);
|
);
|
||||||
|
|
||||||
|
try {
|
||||||
$ratings = $this->client->getMangaRatings($externalIds);
|
$ratings = $this->client->getMangaRatings($externalIds);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($ratings['statistics'])) {
|
if (isset($ratings['statistics'])) {
|
||||||
foreach ($mangas as $manga) {
|
foreach ($mangas as $manga) {
|
||||||
|
|||||||
Reference in New Issue
Block a user