Closed wmedia closed 2 years ago
Cuando la consulta no se realiza exitosamente (tal vez problemas en el servicio de SUNAT), debe retornar un error, si el RUC es válido se podría volver a intentar.
Cuando la consulta no se realiza exitosamente (tal vez problemas en el servicio de SUNAT), debe retornar un error, si el RUC es válido se podría volver a intentar.
Hice algunas pruebas tratando de hacer un debug
en : peru-consult-api/src/Controller/RucController.php lo dejé así y muestra los datos del ruc
public function index($ruc) { $this->service ->get($ruc) ->then(function(?Company $response){ print_r($response); } ); die(); }
/ Peru\Sunat\Company Object ( [ruc] => 20131312955 [razonSocial] => SUPERINTENDENCIA NACIONAL DE ADUANAS Y DE ADMINISTRACION TRIBUTARIA - SUNAT [nombreComercial] => - [telefonos] => Array ( ) [tipo] => INSTITUCIONES PUBLICAS [estado] => ACTIVO / Quizá sea algo en return de la función.
Que versión utilizas, y de PHP? porque si fuera un problema en el código, otros usuarios lo habrían reportado.
uso PHP FPM 7.4 y apache 2.4
Por lo que he estado chekando al parecer el problema en mi caso va acá:
public function handle(Request $request, int $type = HttpKernelInterface::MASTER_REQUEST, bool $catch = true) { $this->boot(); $loop = $this->getContainer()->get('reactphp.event_loop'); $promise = $this->handleAsync($request); $response = null;
$promise->then(function ($result) use (&$response) {
**$response = $result;**
});
$loop->run();
return $response;
}
$response no llega a ser asignado por eso devuelve null, no se si les haya pasado a otros usuarios pero en mi caso el método then no llega a ejecutarse y se va directo a al return; aún no entiendo bien cómo funciona ReactPhp y DriftPhp quizá sea cuestión de mi configuración en el php, quizá puedas enviar tu configuración del PHP.
Hay una extension que requiere driftPhp (pcntl
) pero no esta disponbile en windows, el ultimo código que enviaste solo se agregó para dar soporte a Windows, pero para linux se puede eliminar aplicando estos patchs.
git apply docker/drift-kernel.patch
git apply docker/drift-adapter.patch
Borré e volví a clonar el repo y funcionó. No entiendo que pudo haber ocasionado el error en el primer intento.
Se presenta un error al probar el api.
http://localhost:8080/api/v1/ruc/20131312955?token=abcxyz
TypeError: Return value of App\Kernel::handle() must be an instance of Symfony\Component\HttpFoundation\Response, null returned
at src/Kernel.php:56 at App\Kernel->handle() (public/index.php:20)
PHP v7.4
Revisando el código encuentro que en peru-consult-api/src/Controller/RucController.php:
esta función retorna null
public function index($ruc): PromiseInterface { return $this->service ->get($ruc) ->then(function (?Company $company) {