Commit 08f31a65 authored by Александр Плохих's avatar Александр Плохих 🌔
Browse files

STA-1046 | fullRest restaurant handles + small fixes

parent d52d106e
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -25,13 +25,13 @@ class NewsController extends AbstractController
{
    public function __construct(
        private readonly NewsGetListingUseUseCase $getListingUseCase,
        private readonly NewsGetDetailUseCase $getDetailNews,
        private readonly NewsGetMainUseCase $getMainNews,
        private readonly NewsGetDetailMainUseCase $getDetailMainNews,
        private readonly NewsCreateUseCase $createNews,
        private readonly NewsFullUpdateUseCase $fullUpdate,
        private readonly NewsPartUpdateUseCase $partUpdate,
        private readonly NewsDeleteUseCase $delete,
        private readonly NewsGetDetailUseCase $getDetailUseCase,
        private readonly NewsGetMainUseCase $getMainUseCase,
        private readonly NewsGetDetailMainUseCase $getDetailMainUseCase,
        private readonly NewsCreateUseCase $createUseCase,
        private readonly NewsFullUpdateUseCase $fullUpdateUseCase,
        private readonly NewsPartUpdateUseCase $partUpdateUseCase,
        private readonly NewsDeleteUseCase $deleteUseCase,
    ) {
    }

@@ -44,42 +44,42 @@ class NewsController extends AbstractController
    #[Route('/mainNews', name: 'mainNews', methods: ['GET'])]
    public function mainNews(): JsonResponse
    {
        return $this->getMainNews->execute();
        return $this->getMainUseCase->execute();
    }

    #[Route('/search', name: 'searchNews', methods: ['GET'])]
    public function detailMainNews(): JsonResponse
    {
        return $this->getDetailMainNews->execute();
        return $this->getDetailMainUseCase->execute();
    }

    #[Route('/{detailId}', name: 'oneNews', methods: ['GET'])]
    public function oneNews(NewsDetailRequest $request): JsonResponse
    {
        return $this->getDetailNews->execute($request);
        return $this->getDetailUseCase->execute($request);
    }

    #[Route('/create', name: 'createNews', methods: ['POST'])]
    public function createNews(NewsCreateRequest $request): Response
    {
        return $this->createNews->execute($request);
        return $this->createUseCase->execute($request);
    }

    #[Route('/update', name: 'updateNews', methods: ['PUT'])]
    public function fillUpdateNews(NewsFullUpdateRequest $request): Response
    {
        return $this->fullUpdate->execute($request);
        return $this->fullUpdateUseCase->execute($request);
    }

    #[Route('/partUpdate', name: 'partUpdateNews', methods: ['PATCH'])]
    public function partUpdateNews(NewsPartUpdateRequest $request): Response
    {
        return $this->partUpdate->execute($request);
        return $this->partUpdateUseCase->execute($request);
    }

    #[Route('/delete/{detailId}', name: 'deleteNews', methods: ['DELETE'])]
    public function deleteNews(NewsDetailRequest $request): Response
    {
        return $this->delete->execute($request);
        return $this->deleteUseCase->execute($request);
    }
}
+6 −7
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ class NewsPrepareResponseService
        private readonly NewsListDtoFactory $listingFactory,
        private readonly NewsCategoryDtoFactory $categoryFactory,
        private readonly NewsDetailElementDtoFactory $detailElementFactory,
        private readonly NewsEntityFactory $entityFabric,
        private readonly NewsEntityFactory $entityFactory,
    ) {
    }

@@ -101,8 +101,7 @@ class NewsPrepareResponseService
        return $this->detailElementFactory->create($news);
    }

    public
    function unbirth(
    public function unbirth(
        NewsDetailRequest $request
    ) {
        $news = $this->news->find($request->detailId);
@@ -115,19 +114,19 @@ class NewsPrepareResponseService

    public function rebirth(NewsPartUpdateRequest $request): void
    {
        $news = $this->entityFabric->hardUpdate($request);
        $news = $this->entityFactory->hardUpdate($request);
        $this->news->createUpdate($news);
    }

    public function reborn(NewsFullUpdateRequest $request): void
    {
        $news = $this->entityFabric->softUpdate($request);
        $news = $this->entityFactory->softUpdate($request);
        $this->news->createUpdate($news);
    }

    public function birth(NewsCreateRequest $request): void
    {
        $news = $this->entityFabric->create($request);
        $news = $this->entityFactory->create($request);
        $this->news->createUpdate($news);
    }
}
+36 −0
Original line number Diff line number Diff line
@@ -2,12 +2,20 @@

namespace App\Restaurants\Controller;

use App\Restaurants\Request\RestaurantCreateRequest;
use App\Restaurants\Request\RestaurantFullUpdateRequest;
use App\Restaurants\Request\RestaurantPartUpdateRequest;
use App\Restaurants\UseCase\RestaurantCreateUseCase;
use App\Restaurants\UseCase\RestaurantDeleteUseCase;
use App\Restaurants\UseCase\RestaurantFullUpdateUseCase;
use App\Restaurants\UseCase\RestaurantGetListingUseCase;
use App\Restaurants\Request\RestaurantDetailRequest;
use App\Restaurants\Request\RestaurantListingRequest;
use App\Restaurants\UseCase\RestaurantGetDetailUseCase;
use App\Restaurants\UseCase\RestaurantPartUpdateUseCase;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;

#[Route('/api/v1/restaurants')]
@@ -16,6 +24,10 @@ class RestaurantsController extends AbstractController
    public function __construct(
        private readonly RestaurantGetListingUseCase $getListingUseCase,
        private readonly RestaurantGetDetailUseCase $getDetailUseCase,
        private readonly RestaurantCreateUseCase $createUseCase,
        private readonly RestaurantFullUpdateUseCase $fullUpdateUseCase,
        private readonly RestaurantDeleteUseCase $deleteUseCase,
        private readonly RestaurantPartUpdateUseCase $partUpdateUseCase,
    ) {
    }

@@ -30,4 +42,28 @@ class RestaurantsController extends AbstractController
    {
        return $this->getDetailUseCase->execute($request);
    }

    #[Route('/create', name: 'createRestaurant', methods: ['POST'])]
    public function createRestaurant(RestaurantCreateRequest $request): Response
    {
        return $this->createUseCase->execute($request);
    }

    #[Route('/update', name: 'updateRestaurant', methods: ['PUT'])]
    public function fillUpdateRestaurant(RestaurantFullUpdateRequest $request
    ): Response {
        return $this->fullUpdateUseCase->execute($request);
    }

    #[Route('/partUpdate', name: 'partUpdateRestaurant', methods: ['PATCH'])]
    public function partUpdateRestaurant(RestaurantPartUpdateRequest $request
    ): Response {
        return $this->partUpdateUseCase->execute($request);
    }

    #[Route('/delete/{detailId}', name: 'deleteRestaurant', methods: ['DELETE'])]
    public function deleteRestaurant(RestaurantDetailRequest $request): Response
    {
        return $this->deleteUseCase->execute($request);
    }
}
+27 −38
Original line number Diff line number Diff line
@@ -10,6 +10,18 @@ use Symfony\Contracts\Service\Attribute\Required;

class RestaurantCreateRequest extends AbstractRequest
{
    #[Uuid]
    public $type_id;

    #[Uuid]
    public $settlement_id;

    #[Uuid]
    public $preview_image_id;

    #[Uuid]
    public $detail_image_id;

    #[Type('bool')]
    #[Required]
    public $active;
@@ -20,48 +32,34 @@ class RestaurantCreateRequest extends AbstractRequest

    #[Type('string')]
    #[Required]
    public $description;
    public $code;

    #[Type('string')]
    #[Required]
    public $code;
    public $description;

    #[Type('string')]
    #[Required]
    public $receipt;
    public $check;

    #[Type('string')]
    #[Required]
    public $receipt_info;
    public $check_info;

    #[Type('array')]
    #[All(
        new Type('string')
    )]

    #[Type('string')]
    #[Required]
    public $phone;

    #[Type('array')]
    #[All(
        new Type('string')
    )]
    #[Type('string')]
    #[Required]
    public $email;

    #[Type('array')]
    #[All(
        new Type('string')
    )]
    #[Type('string')]
    #[Required]
    public $address;

    #[Type('array')]
    #[All([
        new Type('array'),
        new All(
            new Type('string')
        )
    ])]
    #[Type('string')]
    #[Required]
    public $tags;

@@ -77,24 +75,15 @@ class RestaurantCreateRequest extends AbstractRequest
    #[Required]
    public $how_to_find;

    #[Uuid]
    public $type_id;

    #[Uuid]
    public $settelement_id;

    #[Uuid]
    public $preview_image_id;

    #[Uuid]
    public $detail_inage_id;

    #[Uuid]
    #[Type('array')]
    #[All(
        new UUid(),
    )]
    public $kitchens_id;

    #[Type('array')]
    #[All(
        new UUid(),
    )]
    public $gallery;
    public $gallery_id;
}
+26 −38
Original line number Diff line number Diff line
@@ -14,6 +14,18 @@ class RestaurantFullUpdateRequest extends AbstractRequest
    #[Required]
    public $id;

    #[Uuid]
    public $type_id;

    #[Uuid]
    public $settlement_id;

    #[Uuid]
    public $preview_image_id;

    #[Uuid]
    public $detail_image_id;

    #[Type('bool')]
    #[Required]
    public $active;
@@ -24,48 +36,34 @@ class RestaurantFullUpdateRequest extends AbstractRequest

    #[Type('string')]
    #[Required]
    public $description;
    public $code;

    #[Type('string')]
    #[Required]
    public $code;
    public $description;

    #[Type('string')]
    #[Required]
    public $receipt;
    public $check;

    #[Type('string')]
    #[Required]
    public $receipt_info;
    public $check_info;

    #[Type('array')]
    #[All(
        new Type('string')
    )]

    #[Type('string')]
    #[Required]
    public $phone;

    #[Type('array')]
    #[All(
        new Type('string')
    )]
    #[Type('string')]
    #[Required]
    public $email;

    #[Type('array')]
    #[All(
        new Type('string')
    )]
    #[Type('string')]
    #[Required]
    public $address;

    #[Type('array')]
    #[All([
        new Type('array'),
        new All(
            new Type('string')
        )
    ])]
    #[Type('string')]
    #[Required]
    public $tags;

@@ -81,25 +79,15 @@ class RestaurantFullUpdateRequest extends AbstractRequest
    #[Required]
    public $how_to_find;

    #[Uuid]
    public $type_id;

    #[Uuid]
    public $settelement_id;

    #[Uuid]
    public $preview_image_id;

    #[Uuid]
    public $detail_inage_id;

    #[Uuid]
    #[Type('array')]
    #[All(
        new UUid(),
    )]
    public $kitchens_id;

    #[Required]
    #[Type('array')]
    #[All(
        new UUid(),
    )]
    public $gallery;
    public $gallery_id;
}
 No newline at end of file
Loading