qnixdev
@qnixdev
Junior PHP Developer

Как объединить два похожих метода контроллера?

Доброго времени суток!

Имеется два очень похожих метода в контроллере, один отвечает за удаления картинок, второй, - за удаления стран.
Это связанные entity через БД и относятся к одной общей entity по этому все в одном контроллере, если что.

Метод №1
/**
     * @Route("/delete/image/{id}", name="coupon_delete_image", methods={"DELETE"})
     */
    public function deleteImage(Request $request, int $id): Response
    {
        $image = $this->imageManager->read($id);
        $data  = json_decode($request->getContent(), true);

        if (
            $this->isCsrfTokenValid(
                'delete'.$image->getId(),
                $data['_token']
            )
        ) {
            $this->imageManager->delete($image);

            return $this->json(['success' => 1]);
        } else {
            return $this->json(['error' => 'Invalid token'], 400);
        }
    }


Метод №2
/**
     * @Route("/delete/country/{id}", name="coupon_delete_country", methods={"DELETE"})
     */
    public function deleteCountry(Request $request, int $id): Response
    {
        $country = $this->countryService->read($id);
        $data    = json_decode($request->getContent(), true);

        if (
            $this->isCsrfTokenValid(
                'delete'.$country->getId(),
                $data['_token']
            )
        ) {
            $this->countryService->delete($country);

            return $this->json(['success' => 1]);
        } else {
            return $this->json(['error' => 'Invalid token'], 400);
        }
    }


Так вот, они буквально один в один и есть идея их объединить, так как у них отличается только @Route и сервисная часть.

Есть возможность объединить их?
Проект если что написан на symfony 5.2
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы