<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use FOS\RestBundle\Controller\Annotations as Rest;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use App\Entity\Interfaces\EntityInterface;
use App\Entity\Contrato;
use App\Form\ContratoType;
use App\Repository\ContratoRepository;
/**
* @Route("/api", name="api_")
*/
class ContratoController extends AbstractAppController
{
public function __construct(ContratoRepository $repository)
{
$this->entity = new Contrato();
$this->repository = $repository;
$this->formType = ContratoType::class;
}
/**
* @Rest\Get("/contrato")
*/
public function list(): Response
{
return parent::list();
}
/**
* @Rest\Get("/contrato/{selector}")
* @ParamConverter("entity", class="App\Entity\Contrato")
*/
public function show(EntityInterface $entity): Response
{
return parent::show($entity);
}
/**
* @Rest\Post("/contrato")
*/
public function new(Request $request): Response
{
return parent::new($request);
}
/**
* @Rest\Put("/contrato/{selector}")
* @ParamConverter("entity", class="App\Entity\Contrato")
*/
public function edit(Request $request, EntityInterface $entity): Response
{
return parent::edit($request, $entity);
}
/**
* @Rest\Get("/contrato/{codigo}/check")
* @ParamConverter("entity", class="App\Entity\Contrato")
*/
public function check(Contrato $entity): Response
{
return $this->handleView($this->view($entity->getSelector()));
}
/**
* @Rest\Get("/contrato/{selector}/dispositivos")
* @ParamConverter("entity", class="App\Entity\Contrato")
*/
public function listDispositivos(Contrato $entity): Response
{
return $this->handleView($this->view($entity->getDispositivos()));
}
/**
* @Rest\Get("/contrato/{selector}/package")
* @ParamConverter("entity", class="App\Entity\Contrato")
*/
public function listPackages(Contrato $entity): Response
{
return $this->handleView($this->view($entity->getPackages()));
}
/**
* @Rest\Get("/contrato/{selector}/dispositivo_pre_aprovado")
* @ParamConverter("entity", class="App\Entity\Contrato")
*/
public function listDispositivoPreAprovados(Contrato $entity): Response
{
return $this->handleView($this->view($entity->getDispositivoPreAprovados()));
}
}