feat: scraping endpoints, job persistence, firsts unit tests, legacy entities usage

This commit is contained in:
ext.jeremy.guillot@maxicoffee.domains
2025-02-07 11:56:51 +01:00
parent c55cd62ec7
commit 0374ab0e46
34 changed files with 348 additions and 326 deletions

View File

@@ -7,6 +7,8 @@ use App\Domain\Scraping\Domain\Contract\Repository\ScrapingJobRepositoryInterfac
use App\Domain\Scraping\Domain\Contract\Service\ScraperInterface;
use App\Domain\Scraping\Domain\Event\ChapterScrapingFailed;
use App\Domain\Scraping\Domain\Event\ChapterScrapingStarted;
use App\Domain\Scraping\Domain\Model\ScrapingJob;
use Ramsey\Uuid\Uuid;
use Symfony\Component\Messenger\MessageBusInterface;
readonly class ScrapeChapterHandler
@@ -21,10 +23,11 @@ readonly class ScrapeChapterHandler
public function handle(ScrapeChapter $command): void
{
try {
$job = $this->scraper->createScrapingJob(
$job = new ScrapingJob(
Uuid::uuid4(),
$command->mangaId,
$command->chapterId,
$command->sourceId,
$command->chapterNumber,
$command->sourceId
);
$this->scrapingJobRepository->save($job);
@@ -33,7 +36,7 @@ readonly class ScrapeChapterHandler
$this->scraper->scrape($job);
} catch (\Exception $e) {
$this->eventBus->dispatch(new ChapterScrapingFailed($command->chapterId, $e->getMessage()));
$this->eventBus->dispatch(new ChapterScrapingFailed($command->mangaId, $command->chapterNumber, $e->getMessage()));
throw $e;
}
}