Files
Mangarr/src/Domain/Scraping/Infrastructure/Persistence/LegacyChapterRepository.php
ext.jeremy.guillot@maxicoffee.domains 073439163b feat: finalizing Scraping endpoint
2025-02-10 17:28:49 +01:00

35 lines
1.1 KiB
PHP

<?php
namespace App\Domain\Scraping\Infrastructure\Persistence;
use App\Domain\Scraping\Domain\Contract\Repository\ChapterRepositoryInterface;
use App\Domain\Scraping\Domain\Exception\ChapterNotFoundException;
use App\Domain\Scraping\Domain\Model\Chapter;
use App\Entity\Chapter as EntityChapter;
use Doctrine\ORM\EntityManagerInterface;
class LegacyChapterRepository implements ChapterRepositoryInterface
{
public function __construct(
private readonly EntityManagerInterface $entityManager,
) {}
public function getByMangaIdAndChapterNumber(string $mangaId, int $chapterNumber): Chapter
{
$chapterEntity = $this->entityManager->getRepository(EntityChapter::class)->findOneBy([
'manga' => $mangaId,
'number' => $chapterNumber,
]);
if (!$chapterEntity) {
throw new ChapterNotFoundException();
}
return new Chapter(
id: $chapterEntity->getId(),
mangaId: $chapterEntity->getManga()->getId(),
chapterNumber: $chapterEntity->getNumber(),
volumeNumber: $chapterEntity->getVolume(),
);
}
}