<?php
namespace App\Controller\Backend;
use App\Entity\Director;
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 DirectorController extends AbstractController
{
/**
* @Route("/{_locale}/dashboard/director/list")
*/
public function listDirectorAction(Request $request){
$em = $this->getDoctrine()->getManager();
$directors = $em->getRepository(Director::class)->findBy(['deleted' => 0]);
return $this->render('/backend/directors/list.html.twig',[
'directors' => $directors
]);
}
/**
* @Route("/{_locale}/dashboard/director/edit/{idDirector}")
* @Route("/{_locale}/dashboard/director/add", defaults={"idDirector":null})
*/
public function editDirectorAction(Request $request, Helper $helper){
$em = $this->getDoctrine()->getManager();
$idDirector = $helper->sanitize($request->get('idDirector'));
$director = $em->getRepository(Director::class)->findOneBy(['idDirector' => $idDirector]);
if(!$director){
$director = new Director();
}
return $this->render('backend/directors/edit.html.twig',[
'director' => $director
]);
}
/**
* @Route("/{_locale}/dashboard/director/save")
*/
public function directorSaveAction(Request $request, Helper $helper){
$em = $this->getDoctrine()->getManager();
$response = new JsonResponse();
try{
$idDirector = $helper->sanitize($request->request->get('idDirector'));
$name = $helper->sanitize($request->request->get('name'));
if (!$name)
throw new Exception('Name not valid');
$director = $em->getRepository(Director::class)->findOneBy(['idDirector' => $idDirector]);
if(!$director){
$director = new Director();
}
$director->setName($name);
$director->setDeleted(0);
$em->persist($director);
$em->flush();
$response->setStatusCode(200);
$response->setData(array(
'response' => 'success',
'msg' => 'Action performed successfully',
'idDirector' => $director->getIdDirector()
));
return $response;
} catch(Exception $e){
$response->setStatusCode(500);
$response->setData(array(
'response' => 'error',
'msg' => 'Something has gone wrong'
));
return $response;
}
}
/**
* @Route("/{_locale}/dashboard/director/delete")
*/
public function directorDeleteAction(Request $request, Helper $helper){
$em = $this->getDoctrine()->getManager();
$response = new JsonResponse();
try{
$idDirector = $helper->sanitize($request->request->get('idDirector'));
$director = $em->getRepository(Director::class)->findOneBy(['idDirector' => $idDirector]);
$director->setDeleted(1);
$em->persist($director);
$em->flush();
$response->setStatusCode(200);
$response->setData(array(
'response' => 'success',
'msg' => 'Action performed successfully'
));
return $response;
} catch(Exception $e){
$response->setStatusCode(500);
$response->setData(array(
'response' => 'error',
'msg' => 'Something has gone wrong'
));
return $response;
}
}
}