From ebdc53eb80bdde8c6a681e1e8f29bd4f5d04122c Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Mon, 15 Sep 2025 14:22:47 -0300 Subject: [PATCH 1/9] Redis max log size --- app/common/Implement/Log/Processor/ArrayBuilder.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/common/Implement/Log/Processor/ArrayBuilder.php b/app/common/Implement/Log/Processor/ArrayBuilder.php index d323e4c..f6551ac 100644 --- a/app/common/Implement/Log/Processor/ArrayBuilder.php +++ b/app/common/Implement/Log/Processor/ArrayBuilder.php @@ -60,7 +60,8 @@ class ArrayBuilder try { $params = [ $this->container->get(Predis\ClientInterface::class), - "logs:{$handlerData['name']}" + "logs:{$handlerData['name']}", + 'capSize' => 100 ]; } catch (NotFoundExceptionInterface | ContainerExceptionInterface $exception) { $this->log($exception, ['handlerData' => $handlerData]); From 1a94759f9d89767a4f29d253e2d018bf9695458b Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Mon, 15 Sep 2025 14:25:10 -0300 Subject: [PATCH 2/9] Configurable --- app/common/Implement/Log/Processor/ArrayBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/common/Implement/Log/Processor/ArrayBuilder.php b/app/common/Implement/Log/Processor/ArrayBuilder.php index f6551ac..50976f0 100644 --- a/app/common/Implement/Log/Processor/ArrayBuilder.php +++ b/app/common/Implement/Log/Processor/ArrayBuilder.php @@ -61,7 +61,7 @@ class ArrayBuilder $params = [ $this->container->get(Predis\ClientInterface::class), "logs:{$handlerData['name']}", - 'capSize' => 100 + 'capSize' => $handlerData['capSize'] ?? 100 ]; } catch (NotFoundExceptionInterface | ContainerExceptionInterface $exception) { $this->log($exception, ['handlerData' => $handlerData]); From 0be244f4fa241688faab08f907d016347ac6d8e9 Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Mon, 15 Sep 2025 14:32:03 -0300 Subject: [PATCH 3/9] Log more from exception. --- app/src/Service/Queue.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/Service/Queue.php b/app/src/Service/Queue.php index 3d082a7..0513554 100644 --- a/app/src/Service/Queue.php +++ b/app/src/Service/Queue.php @@ -68,12 +68,24 @@ class Queue extends Ideal\Service return false; } } catch (Exception $exception) { - $this->logger->warning("Could not run job {$job->id}", ['exception' => $exception]); + $this->logger->warning("Could not run job {$job->id}", ['exception' => [ + 'code' => $exception->getCode(), + 'message' => $exception->getMessage(), + 'file' => $exception->getFile(), + 'line' => $exception->getLine(), + 'trace' => $exception->getTraceAsString(), + ]]); $job->retries++; try { $this->jobService->update($job); } catch (Update $exception) { - $this->logger->error($exception->getMessage(), ['job' => $job, 'exception' => $exception]); + $this->logger->error($exception->getMessage(), ['job' => $job, 'exception' => [ + 'code' => $exception->getCode(), + 'message' => $exception->getMessage(), + 'file' => $exception->getFile(), + 'line' => $exception->getLine(), + 'trace' => $exception->getTraceAsString(), + ]]); } return false; } From d94a064915dc806811b41cbeb2765845c93b459b Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Mon, 15 Sep 2025 14:45:53 -0300 Subject: [PATCH 4/9] Cleanup --- app/src/Service/Venta/Propietario.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/Service/Venta/Propietario.php b/app/src/Service/Venta/Propietario.php index cec026b..cd1a809 100644 --- a/app/src/Service/Venta/Propietario.php +++ b/app/src/Service/Venta/Propietario.php @@ -104,7 +104,6 @@ class Propietario extends Service } catch (EmptyResult) { try { $propietario = $this->propietarioRepository->create($filtered_data); - $this->logger->info('Propietario', ['propietario' => $propietario]); $propietario = $this->propietarioRepository->save($propietario); } catch (PDOException $exception) { throw new Create(__CLASS__, $exception); From d0074a6988aa9642a0216492ae40371fe55a4d7f Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Mon, 15 Sep 2025 16:44:40 -0300 Subject: [PATCH 5/9] FIX: single quote --- app/resources/views/ventas/propietarios/edit.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/resources/views/ventas/propietarios/edit.blade.php b/app/resources/views/ventas/propietarios/edit.blade.php index 2fa210b..b2ab23e 100644 --- a/app/resources/views/ventas/propietarios/edit.blade.php +++ b/app/resources/views/ventas/propietarios/edit.blade.php @@ -33,7 +33,7 @@ Editar Propietario
- +
From c0f56f02e9f85da50ecb0fee821bfa345ec282a7 Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Mon, 15 Sep 2025 16:45:26 -0300 Subject: [PATCH 6/9] Cleanup --- app/src/Service/Persona.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/Service/Persona.php b/app/src/Service/Persona.php index e41a8a6..84bc645 100644 --- a/app/src/Service/Persona.php +++ b/app/src/Service/Persona.php @@ -92,7 +92,6 @@ class Persona extends Ideal\Service throw new Create(__CLASS__, $exception); } } - } $this->addDatos($persona, $data); From ae1b985b3551c1fd7746235281ca41fc5f7548b1 Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Mon, 15 Sep 2025 16:45:42 -0300 Subject: [PATCH 7/9] Test get --- app/tests/unit/src/Service/PersonaTest.php | 71 ++++++++++++++++++++-- 1 file changed, 65 insertions(+), 6 deletions(-) diff --git a/app/tests/unit/src/Service/PersonaTest.php b/app/tests/unit/src/Service/PersonaTest.php index ff5c83b..f838870 100644 --- a/app/tests/unit/src/Service/PersonaTest.php +++ b/app/tests/unit/src/Service/PersonaTest.php @@ -5,12 +5,10 @@ use Psr\Log\LoggerInterface; use PHPUnit\Framework\TestCase; use Faker; use Incoviba\Common\Implement; -use Incoviba\Exception\ServiceAction; use Incoviba\Model; use Incoviba\Repository; use Incoviba\Service; -use Incoviba\Common\Define; -use Incoviba\Common\Ideal; +use Tests\Extension\Faker\Provider\Rut; class PersonaTest extends TestCase { @@ -51,10 +49,11 @@ class PersonaTest extends TestCase $personaService = new Service\Persona($this->logger, $this->personaRepository, $this->datosPersonaRepository, $this->propietarioRepository, $this->direccionService); $faker = Faker\Factory::create('es_ES'); - $digit = $faker->boolean(100-round(1/11*100)) ? $faker->randomNumber(1) : 'K'; + $faker->addProvider(new Rut($faker)); + $rut = $faker->rut(false, false); $data = [ - 'rut' => $faker->randomNumber(8), - 'digito' => $digit, + 'rut' => $rut, + 'digito' => $faker->digitoVerificador($rut), 'nombres' => $faker->name(), 'apellido_paterno' => $faker->lastName(), 'apellido_materno' => $faker->lastName(), @@ -62,4 +61,64 @@ class PersonaTest extends TestCase $persona = $personaService->add($data); $this->assertEquals($data['rut'], $persona->rut); } + public function testGetById(): void + { + $faker = Faker\Factory::create('es_ES'); + $faker->addProvider(new Rut($faker)); + $direccion = $this->getMockBuilder(Model\Direccion::class) + ->disableOriginalConstructor()->getMock(); + $direccion->id = $faker->randomNumber(2); + $datos = new Model\Venta\Datos(); + $datos->direccion = $direccion; + $datos->telefono = $faker->randomNumber(8); + $datos->email = $faker->email(); + $datos->sexo = $faker->randomElement(['M', 'F']); + $rut = $faker->rut(false, false); + $propietario = new Model\Venta\Propietario(); + $propietario->rut = $rut; + $propietario->dv = $faker->digitoVerificador($rut); + $propietario->nombres = $faker->name(); + $propietario->apellidos['paterno'] = $faker->lastName(); + $propietario->apellidos['materno'] = $faker->lastName(); + $propietario->datos = $datos; + $propietarioRepository = $this->getMockBuilder(Repository\Venta\Propietario::class) + ->disableOriginalConstructor()->getMock(); + $personaRepository = $this->getMockBuilder(Repository\Persona::class) + ->disableOriginalConstructor()->getMock(); + $personaRepository->method('fetchById')->willThrowException(new Implement\Exception\EmptyResult('')); + $personaRepository->method('create')->willReturnCallback(function($data) { + $persona = new Model\Persona(); + $persona->rut = $data['rut']; + $persona->digito = $data['digito']; + $persona->nombres = $data['nombres']; + $persona->apellidoPaterno = $data['apellido_paterno']; + $persona->apellidoMaterno = $data['apellido_materno']; + return $persona; + }); + $personaRepository->method('save')->willReturnArgument(0); + $datosPersona = new Model\Persona\Datos(); + $datosPersona->direccion = $direccion; + $datosPersona->telefono = $datos->telefono; + $datosPersona->email = $datos->email; + $datosPersona->sexo = $datos->sexo; + $datosPersonaRepository = $this->getMockBuilder(Repository\Persona\Datos::class) + ->disableOriginalConstructor()->getMock(); + $datosPersonaRepository->method('fetchByPersona')->willReturn($datosPersona); + $propietarioRepository->method('fetchById')->willReturn($propietario); + $direccionService = $this->getMockBuilder(Service\Direccion::class) + ->disableOriginalConstructor()->getMock(); + $direccionService->method('add')->willReturn($direccion); + $personaService = new Service\Persona($this->logger, $personaRepository, $datosPersonaRepository, + $propietarioRepository, $direccionService); + $persona = $personaService->getById($rut); + $this->assertEquals($rut, $persona->rut); + $this->assertEquals($propietario->dv, $persona->digito); + $this->assertEquals($propietario->nombres, $persona->nombres); + $this->assertEquals($propietario->apellidos['paterno'], $persona->apellidoPaterno); + $this->assertEquals($propietario->apellidos['materno'], $persona->apellidoMaterno); + $this->assertEquals($datos->direccion, $persona->datos->direccion); + $this->assertEquals($datos->telefono, $persona->datos->telefono); + $this->assertEquals($datos->email, $persona->datos->email); + $this->assertEquals($datos->sexo, $persona->datos->sexo); + } } From 03c05611b07941b1b6908bed9bbae7710dcc0afa Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Mon, 15 Sep 2025 17:26:56 -0300 Subject: [PATCH 8/9] FIX: number with country code without + --- app/src/Service/Venta/MediosPago/Toku/Customer.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/Service/Venta/MediosPago/Toku/Customer.php b/app/src/Service/Venta/MediosPago/Toku/Customer.php index 568569c..54a06b4 100644 --- a/app/src/Service/Venta/MediosPago/Toku/Customer.php +++ b/app/src/Service/Venta/MediosPago/Toku/Customer.php @@ -103,7 +103,11 @@ class Customer extends AbstractEndPoint continue; } if (!str_starts_with($value, '+')) { - $value = "+56{$value}"; + if (str_starts_with($value, '56')) { + $value = "+{$value}"; + } else { + $value = "+56{$value}"; + } } $params[$key] = $value; continue; From 7c0807b478b6ad5691f1bd334aaa09a9c8d458b0 Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Mon, 15 Sep 2025 17:54:28 -0300 Subject: [PATCH 9/9] FIX: mapResponse not working --- app/setup/setups/services.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/setup/setups/services.php b/app/setup/setups/services.php index 97f0fcc..1e9acc8 100644 --- a/app/setup/setups/services.php +++ b/app/setup/setups/services.php @@ -126,13 +126,6 @@ return [ 'body' => $request->getBody()->getContents(), ]); })); - $stack->push(GuzzleHttp\Middleware::mapResponse(function(Psr\Http\Message\ResponseInterface $response) use ($logger) { - $logger->info('Toku Response', [ - 'status' => $response->getStatusCode(), - 'headers' => $response->getHeaders(), - 'body' => $response->getBody()->getContents(), - ]); - })); return new GuzzleHttp\Client([ 'handler' => $stack, 'base_uri' => $container->get('TOKU_URL'),