31 lines
899 B
PHP
31 lines
899 B
PHP
<?php
|
|
|
|
namespace App\Domain\Scraping\Infrastructure\Persistence;
|
|
|
|
use App\Domain\Scraping\Domain\Contract\Repository\MangaRepositoryInterface;
|
|
use App\Domain\Scraping\Domain\Model\Manga;
|
|
use App\Entity\Manga as EntityManga;
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
|
|
readonly class LegacyMangaRepository implements MangaRepositoryInterface
|
|
{
|
|
public function __construct(
|
|
private EntityManagerInterface $entityManager
|
|
) {
|
|
}
|
|
|
|
public function getById(string $id): ?Manga
|
|
{
|
|
/** @var EntityManga|null $mangaEntity */
|
|
$mangaEntity = $this->entityManager->getRepository(EntityManga::class)->find($id);
|
|
|
|
return $mangaEntity ? new Manga(
|
|
$mangaEntity->getId(),
|
|
$mangaEntity->getTitle(),
|
|
$mangaEntity->getSlug(),
|
|
$mangaEntity->getDescription(),
|
|
$mangaEntity->getAuthor(),
|
|
) : null;
|
|
}
|
|
}
|