<?php
declare(strict_types=1);
namespace App\Controller\Api\Post;
use App\Entity\Club;
use App\Entity\Post;
use App\Utils\Config;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Attribute\AsController;
#[AsController]
class GetPostsFromClubController extends AbstractController
{
public function __construct(private readonly EntityManagerInterface $em)
{
}
public function __invoke(Request $request, Club $club): array
{
$params = json_decode($request->getContent(), true);
$page = $params['page'] ?? 1;
if ($page <= 0 ) $page = 1;
$limit = $params['limit'] ?? 10;
if ($limit <= 0 ) $limit = 10;
return $this->em->getRepository(Post::class)->findBy(['club' => $club, 'status'=> Post::STATUS_ONLINE], ['createdAt' => 'DESC'], $limit, ($page - 1) * $limit);
}
}