<?php
namespace App\Controller;
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 App\Entity\administradorEntity;
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\Resource\Util\modelSftp;
class administradorController extends AbstractController {
use Util;
use Error;
/**
* @Route("/administrador", name="administrador")
* @param Request $request
* @return Response
*/
public function administrador() {
return $this->render('administrador.html.twig', [
'title' => 'Sistema de información de pasantías - administrador',
]);
}
/**
* @Route("/administrador/getArchivo", name="administrador-getArchivo")
* @param Request $request
* @return Response
*/
public function getArchivo(Request $request ) {
try {
$nombre = $request->query->get("url");
$tipo = $request->query->get("tipo");
if($tipo === 'presentacion'){
$a = file_get_contents('https://sid.ufpso.edu.co/archivos/pdf/' . trim($nombre));
}else{
$sftp = new modelSftp();
$a = $sftp->getFile("/data/$tipo/", $nombre ,false);
}
return new Response(
$a, // read from output buffer
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="'.$nombre.'"',
"Cache.Control: max-age=0",
"Data-Name: $nombre"
)
);
} catch (\Exception $e) {
$data = (method_exists($e, 'getErrorCode')) ? $this->languageError($e->getErrorCode()) : $e->getMessage();
return new JsonResponse([
'success' => false,
'data' => $data
]);
}
}
/**
* @Route("/administrador/{react}", name="administrador-react")
* @param Request $request
* @return Response
*/
public function administradorReact(Request $request ,cryptService $respon, ManagerRegistry $doctrine, ValidatorInterface $validator) {
return $this->render('administrador.html.twig', [
'title' => 'Sistema de información de pasantías - administrador',
]);
}
/**
* @Route("/api/administrador/getEstudianteInfo", name="api-administrador-getEstudianteInfo")
* @param Request $request
* @return Response
*/
public function getEstudianteInfo(Request $request ,cryptService $respon, ManagerRegistry $doctrine, ValidatorInterface $validator) {
$error = new ErrorDisplay($request->query->all(), $validator);
/** @var \App\Entity\administradorEntity */
$entity = $error->paramValidate(["codigo"], administradorEntity::class);
if (method_exists($entity, "getstatusCode")) {
/** @var JsonResponse $entity */
return $entity;
}
/** @var \App\Repository\administradorRepository */
$repository = $doctrine->getRepository(administradorEntity::class, 'default');
$repository->conexionBD($this->getUser());
return new JsonResponse($respon->setResponse(
[
'estudiante' => $repository->getEstudianteInfo($entity->getCodigo()),
"pasantia" => $repository->getInfoPasantia($entity->getCodigo()),
'foto' => (new fotoGeneral())->getFotoEstudiante($entity->getCodigo())
]
));
}
/**
* @Route("/api/administrador/getEstudianteAll", name="api-administrador-getEstudianteAll")
* @param Request $request
* @return Response
*/
public function getEstudianteAll(Request $request ,cryptService $respon, ManagerRegistry $doctrine, ValidatorInterface $validator) {
$error = new ErrorDisplay($request->query->all(), $validator);
/** @var \App\Entity\administradorEntity */
$entity = $error->paramValidate(["nombre"], administradorEntity::class);
if (method_exists($entity, "getstatusCode")) {
/** @var JsonResponse $entity */
return $entity;
}
/** @var \App\Repository\administradorRepository */
$repository = $doctrine->getRepository(administradorEntity::class, 'default');
$repository->conexionBD($this->getUser());
return new JsonResponse($respon->setResponse(
[
'data' => $repository->getEstudianteAll($entity->getNombre()),
]
));
}
}