- ScrapingJob: mangaId/chapterNumber/sourceId optionnels (nullable) pour permettre la création en PENDING sans lookup DB dans le StateProcessor - ScrapeChapter: ajoute jobId (pré-généré par le StateProcessor) - ScrapeChapterStateProcessor: crée et persiste le job PENDING avant dispatch; injecte JobRepositoryInterface uniquement - ScrapeChapterHandler: supprime EntityManagerInterface, beginTransaction/ commit/rollback; charge le job existant via jobId, complete() sur succès seulement, fail() si toutes les sources échouent - ScrapeChapterHandlerTest: pré-crée le job, passe jobId dans la commande, supprime le mock EntityManagerInterface - ScrapeChapterTest: accès aux messages via static InMemoryMessageBus, vérifie la présence du jobId dans la commande dispatchée
52 lines
2.1 KiB
YAML
52 lines
2.1 KiB
YAML
framework:
|
|
messenger:
|
|
default_bus: command.bus
|
|
# Transports
|
|
transports:
|
|
commands:
|
|
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
|
|
options:
|
|
queue_name: commands
|
|
events:
|
|
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
|
|
options:
|
|
queue_name: events
|
|
|
|
# Buses configuration
|
|
buses:
|
|
command.bus:
|
|
middleware:
|
|
- validation
|
|
event.bus:
|
|
default_middleware: allow_no_handlers
|
|
|
|
# Message routing
|
|
routing:
|
|
# Commands
|
|
'App\Domain\Scraping\Application\Command\ScrapeChapter': commands
|
|
'App\Domain\Manga\Application\Command\FetchMangaChapters': commands
|
|
'App\Domain\Manga\Application\Command\RefreshMangaChapters': commands
|
|
|
|
# Events spécifiques (pour compatibilité, peuvent être supprimés si tous implémentent AsyncDomainEvent)
|
|
# ChapterScrapingStarted est synchrone pour que la notif "démarrage" arrive AVANT le scraping
|
|
'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
|
|
'App\Domain\Shared\Domain\Event\ChapterImported': events
|
|
'App\Domain\Shared\Domain\Event\VolumeImported': events
|
|
'App\Domain\Shared\Domain\Event\ChapterScraped': events
|
|
|
|
# Legacy messages (à garder si nécessaire)
|
|
'App\Message\DownloadChapter': commands
|
|
'App\Message\RefreshMetadata': commands
|
|
'App\Message\RefreshAndDownloadChapters': commands
|
|
|
|
# when@test:
|
|
# framework:
|
|
# messenger:
|
|
# transports:
|
|
# # replace with your transport name here (e.g., my_transport: 'in-memory://')
|
|
# # For more Messenger testing tools, see https://github.com/zenstruck/messenger-test
|
|
# async: 'in-memory://'
|