<?php
namespace App\Controller\CookingTrick;
use App\Helpers\UploadedBase64File;
use App\Services\CookingTrickService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class CookingTricksController extends AbstractController
{
public function __construct(private CookingTrickService $cookingTrickService)
{
$this->cookingTrickService = $cookingTrickService;
}
#[Route('/api/add-cooking_trick', name: 'add_cooking_trick', methods: ['POST'])]
public function add(Request $request): Response
{
$data = $request->request->all();
$file = $request->files;
return $this->cookingTrickService->add($data, $file);
}
#[Route('/api/delete-cooking_trick/{id}', name: 'delete_cooking_trick', methods: ['DELETE'])]
public function delete($id): Response
{
return $this->cookingTrickService->delete($id);
}
#[Route('/admin/delete-cooking_trick/{id}', name: 'delete_cooking_trick_admin', methods: ['DELETE'])]
public function deleteAdmin($id): Response
{
return $this->cookingTrickService->delete($id);
}
#[Route('/show-cooking_trick/{slug}', name: 'show_cooking_trick', methods: ['GET'])]
public function show($slug): Response
{
return $this->cookingTrickService->show($slug);
}
#[Route('/active-cooking-trick/{slug}', name: 'active_cooking_trick', methods: ['GET'])]
public function activeCookingTrick($slug): Response
{
return $this->cookingTrickService->activeCookingTrick($slug);
}
#[Route('api/update-cooking_trick/{slug}', name: 'app_cooking_trick', methods: ['POST'])]
public function update($slug, Request $request): Response
{
$data = $request->request->all();
$file = $request->files;
return $this->cookingTrickService->update($slug, $data, $file);
}
#[Route('admin-update-recipe_type/{slug}', name: 'app_cooking_trick_admin', methods: ['POST'])]
public function updateAdmin($slug, Request $request): Response
{
$data = $request->request->all();
if($data == []){
$data = json_decode($request->getContent(), true);
}
$file = $request->files->get('image_url');
if (isset($data["is_dash_data"])) {
if ($data['is_dash_data'] == true && isset($data['image_url'])) {
$imgBase64 = $data["image_url"];
$img = UploadedBase64File::extractBase64String($imgBase64);
$file = new UploadedBase64File($img, random_int(2,20).'.jpg');
}
}
return $this->cookingTrickService->update($slug, $data, $file);
}
#[Route('get-cooking_tricks', name: 'cooking_tricks', methods: ["POST"])]
public function getAll(Request $request)
{
$data = $request->request->all();
if($data == []){
$data = json_decode($request->getContent(), true);
}
return $this->cookingTrickService->getAll($data);
}
#[Route('get-cooking_tricks_dash', name: 'cooking_tricks_dash', methods: ["GET"])]
public function getAllForDash()
{
return $this->cookingTrickService->getAllForDash();
}
#[Route('search-cooking_trick-by-name/{keyword}', name: 'search_cooking_tricks', methods: ["GET"])]
public function getCookingTrickByName($keyword)
{
return $this->cookingTrickService->getCookingTrickByName($keyword);
}
}