src/Controller/RegistroCivilController.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\JsonResponse;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Contracts\HttpClient\HttpClientInterface;
  8. use Symfony\Component\Security\Core\Security;
  9. /**
  10.  * @Route("/registro_civil")
  11.  */
  12. class RegistroCivilController extends AbstractController
  13. {
  14.     /**
  15.      * @var Security
  16.      */
  17.     private $security;
  18.     public function __construct(Security $security)
  19.     {
  20.        date_default_timezone_set("America/Guayaquil");
  21.        $this->security $security;
  22.     }
  23.     /**
  24.      * @Route("/", name="registro_civil_index", methods={"GET","POST"})
  25.      */
  26.     public function registroCivilRequest $requestHttpClientInterface $client): JsonResponse {
  27.         $cedula $request->request->get('cedula');
  28.         if (!$cedula) {
  29.             return new JsonResponse([
  30.                 'error' => true,
  31.                 'mensaje' => 'Parámetro Empleado es obligatorio'
  32.             ], 400);
  33.         }
  34.         $url 'https://saccs.acess.gob.ec/wsc/registrocivil/infopersona/' $cedula;
  35.         try {
  36.             $response $client->request('GET'$url, [
  37.                 'verify_peer' => false// ⚠️ solo si el SSL da problemas
  38.                 'timeout' => 30,
  39.             ]);
  40.             $statusCode $response->getStatusCode();
  41.             if ($statusCode !== 200) {
  42.                 return new JsonResponse([
  43.                     'error' => true,
  44.                     'mensaje' => 'Error en API Registro Civil',
  45.                     'status' => $statusCode
  46.                 ], $statusCode);
  47.             }
  48.             // Convierte automáticamente a array
  49.             $data $response->toArray(false);
  50.             return new JsonResponse($data);
  51.         } catch (\Throwable $e) {
  52.             return new JsonResponse([
  53.                 'error' => true,
  54.                 'mensaje' => 'Error al consumir API',
  55.                 'detalle' => $e->getMessage()
  56.             ], 500);
  57.         }
  58.     }
  59. }