Newer
Older
Александр Плохих
committed
<?php
namespace App\Controller;
use App\Request\DetailRequest;
use App\Request\EmptyRequest;
Александр Плохих
committed
use App\Request\NewsListingRequest;
use App\Service\NewsDetailService;
Александр Плохих
committed
use App\Service\NewsListingService;
use App\Service\NewsMainNewsService;
use App\Service\NewsSearchService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController as BundleController;
Александр Плохих
committed
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Attribute\Route;
#[Route('/api/v1/news')]
class NewsController extends BundleController
Александр Плохих
committed
{
public function __construct(
private readonly NewsDetailService $detailService,
private readonly NewsListingService $listingService,
private readonly NewsMainNewsService $mainNewsService,
private readonly NewsSearchService $searchService,
) {}
#[Route('/', name: 'news', methods: ['GET'])]
public function news(NewsListingRequest $request): JsonResponse
{
return (new Handle($this->listingService))->handle($request);
}
#[Route('/mainNews', name: 'mainNews', methods: ['GET'])]
public function mainNews(EmptyRequest $request): JsonResponse
{
return (new Handle($this->mainNewsService))->handle($request);
}
#[Route('/search', name: 'searchNews', methods: ['GET'])]
public function search(EmptyRequest $request): JsonResponse
Александр Плохих
committed
{
return (new Handle($this->searchService))->handle($request);
Александр Плохих
committed
}
#[Route('/{detailId}', name: 'oneNews', methods: ['GET'])]
public function oneNews(DetailRequest $request): JsonResponse
Александр Плохих
committed
{
return (new Handle($this->detailService))->handle($request);