<?php
namespace App\Controller\administrador;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use App\Service\cryptService;
use Doctrine\Persistence\ManagerRegistry;
use App\Resource\Util\Util;
use App\Resource\Dbal\Error;
use App\Resource\Error\errorDisplay;
use App\Resource\Util\fotoGeneral;
use App\Entity\estudiante\registroInicialEntity;
use App\Resource\Util\modelSftp;
/**
* @Route("/api/registroInicial",name="API-registroInicial-")
*/
class registroInicialController extends AbstractController {
use Util;
use Error;
/**
* @Route("/getRegistro", name="getRegistro")
* @param Request $request
* @return Response
*/
public function getRegistro(Request $request ,cryptService $respon, ManagerRegistry $doctrine, ValidatorInterface $validator) {
$error = new ErrorDisplay($request->query->all(), $validator);
/** @var \App\Entity\estudiante\registroInicialEntity */
$entity = $error->paramValidate(["codigo"], registroInicialEntity::class);
if (method_exists($entity, "getstatusCode")) {
/** @var JsonResponse $entity */
return $entity;
}
/** @var \App\Repository\estudiante\registroInicialRepository */
$repository = $doctrine->getRepository(registroInicialEntity::class, 'default');
return new JsonResponse($respon->setResponse(
[
'data' => $repository->conexionBD($this->getUser())->getEstudianteInfo($entity->getCodigo())
]
));
}
/**
* @Route("/putEstadoRegistro", name="putEstadoRegistro", methods={"POST"})
* @param Request $request
* @return Response
*/
public function putEstadoRegistro(Request $request ,cryptService $respon, ManagerRegistry $doctrine, ValidatorInterface $validator) {
$error = new ErrorDisplay($request->request->all(), $validator);
/** @var \App\Entity\estudiante\registroInicialEntity */
$entity = $error->paramValidate(["serial", "estado"], registroInicialEntity::class);
if (method_exists($entity, "getstatusCode")) {
/** @var JsonResponse $entity */
return $entity;
}
/** @var \App\Repository\estudiante\registroInicialRepository */
$repository = $doctrine->getRepository(registroInicialEntity::class, 'default');
return new JsonResponse($respon->setResponse($repository->conexionBD($this->getUser())->putEstadoRegistro($entity->getSerial(), $entity->getEstado())));
}
/**
* @Route("/postRegistro", name="postRegistro", methods={"POST"})
* @param Request $request
* @return Response
*/
public function postRegistro(Request $request ,cryptService $respon, ManagerRegistry $doctrine, ValidatorInterface $validator) {
$error = new ErrorDisplay($request->request->all(), $validator);
/** @var \App\Entity\estudiante\registroInicialEntity */
$entity = $error->paramValidate(["codigo","serial", "fecha","ano", "semestre", "anoPasantia","semestrePasantia"], registroInicialEntity::class);
if (method_exists($entity, "getstatusCode")) {
/** @var JsonResponse $entity */
return $entity;
}
$sftp = new modelSftp();
$archivo = $request->files->get("adjunto");
$nombre = 'carta_' . $entity->getSerial() . '.' . $archivo->getClientOriginalExtension();
$file = $sftp->setFile(file_get_contents($archivo->getPathname()), '/data/carta/', $nombre);
if (!$file) {
return new JsonResponse($respon->setResponse([
'data' => "Error al subir el archivo",
'success' => false
]));
}
/** @var \App\Entity\userEntity */
$user = $this->getUser();
/** @var \App\Repository\estudiante\registroInicialRepository */
$repository = $doctrine->getRepository(registroInicialEntity::class, 'default');
return new JsonResponse($respon->setResponse($repository->conexionBD($this->getUser())
->postRegistro($entity->getCodigo(), $entity->getSerial(), $entity->getFecha(),
$entity->getAno(), $entity->getSemestre(), $entity->getAnoPasantia() ,
$entity->getSemestrePasantia(), $user->getUsername(), $nombre
)));
}
}