<?php
namespace App\Controller\Backend;
use App\Entity\ProductionCompany;
use App\Services\Helper;
use Exception;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class ProductionCompanyController extends AbstractController
{
/**
* @Route("/{_locale}/dashboard/production-company/list")
*/
public function listProductionsAction(Request $request){
$em = $this->getDoctrine()->getManager();
$productions = $em->getRepository(ProductionCompany::class)->findBy(['deleted' => 0]);
return $this->render('/backend/productions/list.html.twig',[
'productions' => $productions
]);
}
/**
* @Route("/{_locale}/dashboard/production-company/edit/{idProduction}")
* @Route("/{_locale}/dashboard/production-company/add", defaults={"idProduction":null})
*/
public function editProductionsAction(Request $request, Helper $helper){
$em = $this->getDoctrine()->getManager();
$idProduction = $helper->sanitize($request->get('idProduction'));
$production = $em->getRepository(ProductionCompany::class)->findOneBy(['idProduction' => $idProduction]);
if(!$production){
$production = new ProductionCompany();
}
return $this->render('backend/productions/edit.html.twig',[
'production' => $production
]);
}
/**
* @Route("/{_locale}/dashboard/production-company/save")
*/
public function productionSaveAction(Request $request, Helper $helper){
$em = $this->getDoctrine()->getManager();
$response = new JsonResponse();
try{
$idProduction = $helper->sanitize($request->request->get('idProduction'));
$name = $helper->sanitize($request->request->get('name'));
$production = $em->getRepository(ProductionCompany::class)->findOneBy(['idProduction' => $idProduction]);
if(!$production){
$production = new ProductionCompany();
}
$production->setName($name);
$production->setDeleted(0);
$em->persist($production);
$em->flush();
$response->setStatusCode(200);
$response->setData(array(
'response' => 'success',
'msg' => 'Action performed successfully',
'idProduction' => $production->getIdProduction()
));
return $response;
} catch(Exception $e){
$response->setStatusCode(500);
$response->setData(array(
'response' => 'error',
'msg' => 'Something has gone wrong'
));
return $response;
}
}
/**
* @Route("/{_locale}/dashboard/production-company/delete")
*/
public function productionDeleteAction(Request $request, Helper $helper){
$em = $this->getDoctrine()->getManager();
$response = new JsonResponse();
try{
$idProduction = $helper->sanitize($request->request->get('idProduction'));
$production = $em->getRepository(ProductionCompany::class)->findOneBy(['idProduction' => $idProduction]);
$production->setDeleted(1);
$em->persist($production);
$em->flush();
$response->setStatusCode(200);
$response->setData(array(
'response' => 'success'
));
return $response;
} catch(Exception $e){
$response->setStatusCode(500);
$response->setData(array(
'response' => 'error',
'msg' => 'Something has gone wrong'
));
return $response;
}
}
}