<?php
namespace App\Controller;
use App\Entity\Usuario;
use App\Service\ComponenteService;
use FOS\RestBundle\Controller\AbstractFOSRestController;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\FOSRestController;
use JMS\Serializer\SerializerBuilder;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Serializer\SerializerInterface;
use JMS\Serializer\SerializationContext;
class ComponenteController extends AbstractFOSRestController
{
private $service;
private $serializer;
public function __construct(
ComponenteService $componenteService,
SerializerInterface $serializer
)
{
$this->service = $componenteService;
$this->serializer = $serializer;
//$this->serializer = $this->get('jms_serializer');
}
/*
* @Rest\Get("api_inicio/load_inicial/obtenerConvertidores")
*
public function getConvertidores(Request $request)
{
return $this->obtenerConvertidores($request);
}
*/
/**
* @Rest\Get("api/obtenerPastas", name="obtener_pasta_disponibilidad")
*/
public function obtenerPastas(Request $request)
{
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
$usr= $this->get('security.token_storage')->getToken()->getUser();
$data = $this->service->getPastas($usr, true);
if($data)
{
$code = Response::HTTP_OK;
}else{
$code = Response::HTTP_NO_CONTENT;
$data = ['error'=>'no se encontraron mensajes'];
}
$serializacion = SerializationContext::create()->setGroups(['detalle','envases_group'=>['detalle']]);
$response = new Response($serializer->serialize($data, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json'); //xml
$response->prepare($request);
return $response;
}
/**
* @Rest\Get("api/obtenerPastasSpb", name="obtener_pasta_disponibilidad_Spb")
*/
public function obtenerPastasSpb(Request $request)
{
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
$usr= $this->get('security.token_storage')->getToken()->getUser();
$data = $this->service->getPastas($usr, false);
if($data)
{
$code = Response::HTTP_OK;
}else{
$code = Response::HTTP_NO_CONTENT;
$data = ['error'=>'no se encontraron mensajes'];
}
$serializacion = SerializationContext::create()->setGroups(['detalle','envases_group'=>['detalle']]);
$response = new Response($serializer->serialize($data, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json'); //xml
$response->prepare($request);
return $response;
}
/*
* api/obtenerComponentesPorCriterioBusqueda (cadenaBusquedaComponente)
*
*/
/**
*
* @Rest\Get("api/obtenerConvertidores", name="obtener_convertidor_disponibilidad")
* @param Request idColor Clave del color del que extraer los convertidores.
*
*/
public function obtenerConvertidores(Request $request)
{
// $serializer = $this->get('jms_serializer');
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
$usr= $this->get('security.token_storage')->getToken()->getUser();
//dd($usr->getCuenta());
$data = $this->service->getConvertidores1($usr);
if($data)
{
$code = Response::HTTP_OK;
}else{
$code = Response::HTTP_NO_CONTENT;
$data = ['error'=>'no se encontraron mensajes'];
}
$serializacion = SerializationContext::create()->setGroups(['detalle','envases_group'=>['detalle']]);
$response = new Response($serializer->serialize($data, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json'); //xml
$response->prepare($request);
return $response;
}
/*
* api/obtenerComponentesPorCriterioBusqueda (cadenaBusquedaComponente)
*
*/
/**
* @Rest\Get("api/obtenerComponentesPorCodigo", name="obtener_componentes_por_codigo")
* @param Request codigo
*
*/
public function obtenerComponentesPorCodigo(Request $request)
{
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
$usr= $this->get('security.token_storage')->getToken()->getUser();
$codigo = $request->get('codigo');
$data = $this->service->obtenerComponentesPorCodigo($codigo, $usr, 1);
$code = Response::HTTP_OK;
if(!$data)
{
$data = [];
}
$serializacion = SerializationContext::create()->setGroups(['detalle']);
$response = new Response($serializer->serialize($data, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json');
$response->prepare($request);
return $response;
}
/**
* @Rest\Get("api/obtenerComponentesPorCodigoSpb", name="obtener_componentes_por_codigo_spb")
* @param Request codigo
*
*/
public function obtenerComponentesPorCodigoSpb(Request $request)
{
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
$usr= $this->get('security.token_storage')->getToken()->getUser();
$codigo = $request->get('codigo');
// $data = $this->service->obtenerComponentesPorCodigoSpb($codigo, $usr);
$data = $this->service->obtenerComponentesPorCodigo($codigo, $usr, 0);
$code = Response::HTTP_OK;
if(!$data)
{
$data = [];
}
$serializacion = SerializationContext::create()->setGroups(['detalle']);
$response = new Response($serializer->serialize($data, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json');
$response->prepare($request);
return $response;
}
/**
* @Rest\Get("api/admin/obtenerComponentesPorCodigo", name="obtener_componentes_por_codigo_sinPeronal")
* @param Request codigo
*
*/
public function obtenerComponentesPorCodigosinPersonal(Request $request)
{
$usr= $this->get('security.token_storage')->getToken()->getUser();
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
$codigo = $request->get('codigo');
$data = $this->service->obtenerComponentesPorCodigo($codigo, $usr, 1);
$data1= [];
foreach ($data as $item){
if($item->getDiscriminador() == 1 || $item->getDiscriminador()==2){
$data1[]=$item;
}
}
$code = Response::HTTP_OK;
if(!$data1)
{
$data1 = [];
}
$serializacion = SerializationContext::create()->setGroups(['detalle']);
$response = new Response($serializer->serialize($data1, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json');
$response->prepare($request);
return $response;
}
/**
* @Rest\Get("api/componenentesPersonales", name="getListadoComponenentesPersonales")
*/
public function getListadoComponentesPersonales(Request $request)
{
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
$usr= $this->get('security.token_storage')->getToken()->getUser();
$data = $this->service-> findbyCategoriPersonal($usr);
$code = Response::HTTP_OK;
if($data)
{
$code = Response::HTTP_OK;
}else{
//$code = Response::HTTP_NO_CONTENT;
new Response($serializer->serialize([],'json') , Response::HTTP_OK);
}
$serializacion = SerializationContext::create()->setGroups(['detalle']);
$response = new Response($serializer->serialize($data, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json'); //xml
$response->prepare($request);
return $response;
}
/**
* @Rest\Post("api/updateComponenentesPersonales", name="updateListadoComponenentesPersonales")
*/
public function updateComponentePersonal(Request $request)
{
$correcto = null;
$usr = $this->get('security.token_storage')->getToken()->getUser();
$response = new Response(Response::HTTP_BAD_REQUEST);
if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
$componente= json_decode($request->getContent(), true);
$correcto = $this ->service ->nuevoModificaComponentePersonal($componente, $usr);
}
if($correcto != null){
$response = new Response('OK', Response::HTTP_OK);
}else{
$response = new Response('KO', Response::HTTP_BAD_REQUEST);
}
$response->prepare($request);
return $response;
}
/**
* @Rest\Get("api/admin/convertidores", name="getListadoConverdiroes")
*/
public function getListadoConvertidores(Request $request)
{
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
$data = $this->service-> findbyCategori(1);
if($data)
{
$code = Response::HTTP_OK;
}else{
$code = Response::HTTP_NO_CONTENT;
$data = ['error'=>'no se encontraron mensajes'];
}
$serializacion = SerializationContext::create()->setGroups(['detalle']);
$response = new Response($serializer->serialize($data, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json'); //xml
$response->prepare($request);
return $response;
}
/**
* @Rest\Get("api/admin/pastas", name="getListadoPastas")
*/
public function getListadoPastasF(Request $request)
{
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
$data = $this->service-> findbyCategori(2);
if($data) {
$code = Response::HTTP_OK;
}
$serializacion = SerializationContext::create()->setGroups(['detalle']);
$response = new Response($serializer->serialize($data, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json'); //xml
$response->prepare($request);
return $response;
}
/**
* @Rest\Get("api/admin/pastas", name="getListadoPastas")
*/
public function getListadoPastas(Request $request)
{
$serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
)
)->build();
//$serializer = $this->get('jms_serializer');
$data = $this->service-> findbyCategori(2);
if($data)
{
$code = Response::HTTP_OK;
}else{
$code = Response::HTTP_NO_CONTENT;
$data = ['error'=>'no se encontraron pastas'];
}
$serializacion = SerializationContext::create()->setGroups(['detalle']);
$response = new Response($serializer->serialize($data, "json",$serializacion),$code);
$response->headers->set('Content-Type', 'json'); //xml
$response->prepare($request);
return $response;
}
/**
* @Rest\Post("api/admin/pastasUpdates", name="CreateOrUpdatePasta")
*/
public function updatePasta(Request $request)
{
$correcto = null;
$status = Response::HTTP_BAD_REQUEST;
$msg = "";
if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
$pasta= json_decode($request->getContent(), true);
if(empty($pasta['codigo']))
{
$msg = "codigo no valido";
}else {
if ($pasta['id'] != null && $pasta['id'] != '') {
//Tenemos Id por lo que es una actulizacion
$correcto = $this->service->modificaPasta($pasta);
} else {
$correcto = $this->service->nuevaPasta($pasta);
}
}
}
if($correcto != null){
$status = Response::HTTP_OK;
$msg = "pasta ";
}else{
$status = Response::HTTP_BAD_REQUEST;
}
$response = new Response($msg,$status);
$response->prepare($request);
return $response;
}
/**
* @Rest\Post("api/admin/convertidorUpdate", name="CreateOrUpdateConvertidor")
*/
public function updateConvertidor(Request $request)
{
$correcto = null;
$response = new Response(Response::HTTP_BAD_REQUEST);
if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
$convertidor= json_decode($request->getContent(), true);
if($convertidor['id']!= null && $convertidor['id']!= '' && $convertidor['id']!= '0'){
//Tenemos Id por lo que es una actulizacion
$correcto = $this ->service ->modificaConvertidor($convertidor);
}else{
$correcto = $this ->service ->nuevoConvertidor($convertidor);
}
}
if($correcto != null){
$response = new Response('OK', Response::HTTP_OK);
}else{
$response = new Response('KO',Response::HTTP_BAD_REQUEST);
}
$response->prepare($request);
return $response;
}
}