implement ListRecentPosts use case

validates limit > 0 (zero or negative -> BadRequest), then
delegates to PostRepository->findRecent. 49 tests pass.
This commit is contained in:
yisroel 2026-05-06 15:24:15 +03:00
parent e9779d8459
commit 7ec46aa8f9
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
2 changed files with 38 additions and 0 deletions

View file

@ -0,0 +1,28 @@
<?php
namespace App\Post\UseCases\ListRecentPosts;
use App\Exceptions\BadRequestException;
use App\Post\Post;
use App\Post\PostRepository;
class ListRecentPosts
{
public function __construct(
private PostRepository $postRepo,
) {}
/**
* @return Post[]
*
* @throws BadRequestException
*/
public function execute(ListRecentPostsRequest $request): array
{
if ($request->limit <= 0) {
throw new BadRequestException('limit must be positive');
}
return $this->postRepo->findRecent($request->limit);
}
}

View file

@ -0,0 +1,10 @@
<?php
namespace App\Post\UseCases\ListRecentPosts;
class ListRecentPostsRequest
{
public function __construct(
public int $limit,
) {}
}