Files
Mangarr/src/Domain/Manga/Application/QueryHandler/GetMangaListHandler.php
ext.jeremy.guillot@maxicoffee.domains e3d380eadd feat: GetMangaList endpoint + tests + test db
2025-02-10 19:21:14 +01:00

33 lines
896 B
PHP

<?php
namespace App\Domain\Manga\Application\QueryHandler;
use App\Domain\Manga\Application\Query\GetMangaList;
use App\Domain\Manga\Domain\Contract\Repository\MangaRepositoryInterface;
use App\Domain\Manga\Application\Response\MangaListResponse;
readonly class GetMangaListHandler
{
public function __construct(
private MangaRepositoryInterface $mangaRepository
) {}
public function handle(GetMangaList $query): MangaListResponse
{
$mangas = $this->mangaRepository->findAll(
page: $query->page,
limit: $query->limit,
sortBy: $query->sortBy,
sortOrder: $query->sortOrder
);
$total = $this->mangaRepository->count();
return new MangaListResponse(
mangas: $mangas,
total: $total,
page: $query->page,
limit: $query->limit
);
}
}