- {{$inmobiliaria->abreviacion}}
- {{--
- --}}
+ {{$inmobiliaria->abreviacion}}
{{$inmobiliaria->razon}} {{$inmobiliaria->tipoSociedad->descripcion}}
diff --git a/app/setup/middlewares/96_cors.php b/app/setup/middlewares/96_cors.php
new file mode 100644
index 0000000..8249adc
--- /dev/null
+++ b/app/setup/middlewares/96_cors.php
@@ -0,0 +1,2 @@
+add($app->getContainer()->get(Incoviba\Middleware\CORS::class));
diff --git a/app/src/Controller/API/Inmobiliarias.php b/app/src/Controller/API/Inmobiliarias.php
index 273e49d..d6fc8c2 100644
--- a/app/src/Controller/API/Inmobiliarias.php
+++ b/app/src/Controller/API/Inmobiliarias.php
@@ -12,6 +12,16 @@ class Inmobiliarias
{
use withJson;
+ public function __invoke(ServerRequestInterface $request, ResponseInterface $response, Repository\Inmobiliaria $inmobiliariaRepository): ResponseInterface
+ {
+ $output = [
+ 'inmobiliarias' => []
+ ];
+ try {
+ $output['inmobiliarias'] = $inmobiliariaRepository->fetchAll('razon');
+ } catch (EmptyResult) {}
+ return $this->withJson($response, $output);
+ }
public function cuentas(ServerRequestInterface $request, ResponseInterface $response,
Repository\Inmobiliaria $inmobiliariaRepository,
Repository\Inmobiliaria\Cuenta $cuentaRepository, int $inmobiliaria_rut): ResponseInterface
diff --git a/app/src/Controller/Inmobiliarias.php b/app/src/Controller/Inmobiliarias.php
index 3387909..29653da 100644
--- a/app/src/Controller/Inmobiliarias.php
+++ b/app/src/Controller/Inmobiliarias.php
@@ -20,8 +20,8 @@ class Inmobiliarias
$inmobiliarias = [];
try {
$inmobiliarias = array_map(function($row) use ($inmobiliariaRepository) {
- return $inmobiliariaRepository->load((array) $row);
- }, $this->fetchRedis($redisService, $redisKey));
+ return $inmobiliariaRepository->load($row);
+ }, $this->fetchRedis($redisService, $redisKey, true));
} catch (EmptyRedis) {
try {
$inmobiliarias = $inmobiliariaRepository->fetchAll();
diff --git a/app/src/Controller/withRedis.php b/app/src/Controller/withRedis.php
index 0cc5bab..62692ec 100644
--- a/app/src/Controller/withRedis.php
+++ b/app/src/Controller/withRedis.php
@@ -6,13 +6,13 @@ use Incoviba\Service;
trait withRedis
{
- public function fetchRedis(Service\Redis $redisService, string $redisKey): mixed
+ public function fetchRedis(Service\Redis $redisService, string $redisKey, ?bool $asArray = null): mixed
{
$jsonString = $redisService->get($redisKey);
if ($jsonString === null) {
throw new EmptyRedis($redisKey);
}
- return json_decode($jsonString);
+ return json_decode($jsonString, $asArray);
}
public function saveRedis(Service\Redis $redisService, string $redisKey, mixed $value, ?int $expiration = null): void
{
diff --git a/app/src/Middleware/CORS.php b/app/src/Middleware/CORS.php
new file mode 100644
index 0000000..718e18d
--- /dev/null
+++ b/app/src/Middleware/CORS.php
@@ -0,0 +1,21 @@
+getMethod() === 'OPTIONS') {
+ return $this->responseFactory->createResponse()
+ ->withHeader('Access-Control-Allow-Origin', '*')
+ ->withHeader('Access-Control-Allow-Methods', 'POST,GET,OPTIONS');
+ }
+ return $handler->handle($request);
+ }
+}
diff --git a/app/src/Model/Inmobiliaria.php b/app/src/Model/Inmobiliaria.php
index 83400ab..e590b67 100644
--- a/app/src/Model/Inmobiliaria.php
+++ b/app/src/Model/Inmobiliaria.php
@@ -10,8 +10,6 @@ class Inmobiliaria extends Model
public ?string $dv;
public ?string $razon;
public ?string $abreviacion;
- public ?string $cuenta;
- public ?Banco $banco;
public ?TipoSociedad $tipoSociedad;
public function rut(): string
@@ -37,8 +35,6 @@ class Inmobiliaria extends Model
'rut_formateado' => $this->rut(),
'razon' => $this->razon ?? '',
'abreviacion' => $this->abreviacion ?? '',
- 'cuenta' => $this->cuenta ?? '',
- 'banco' => $this->banco ?? '',
'tipo_sociedad' => $this->tipoSociedad ?? ''
];
}
diff --git a/app/src/Repository/Inmobiliaria.php b/app/src/Repository/Inmobiliaria.php
index decedf3..77dac3f 100644
--- a/app/src/Repository/Inmobiliaria.php
+++ b/app/src/Repository/Inmobiliaria.php
@@ -20,13 +20,9 @@ class Inmobiliaria extends Ideal\Repository
return 'rut';
}
- public function create(?array $data = null): Define\Model
+ public function create(?array $data = null): Model\Inmobiliaria
{
- $map = (new Implement\Repository\MapperParser(['dv', 'razon', 'abreviacion', 'cuenta']))
- ->register('banco', (new Implement\Repository\Mapper())
- ->setFunction(function($data) {
- return $this->bancoRepository->fetchById($data['banco']);
- }))
+ $map = (new Implement\Repository\MapperParser(['dv', 'razon', 'abreviacion']))
->register('sociedad', (new Implement\Repository\Mapper())
->setProperty('tipoSociedad')
->setFunction(function($data) {
@@ -34,7 +30,7 @@ class Inmobiliaria extends Ideal\Repository
}));
return $this->parseData(new Model\Inmobiliaria(), $data, $map);
}
- public function save(Define\Model $model): Define\Model
+ public function save(Define\Model $model): Model\Inmobiliaria
{
$model->rut = $this->saveNew(
['dv', 'razon', 'abreviacion', 'cuenta', 'banco', 'sociedad'],
@@ -42,7 +38,7 @@ class Inmobiliaria extends Ideal\Repository
);
return $model;
}
- public function edit(Define\Model $model, array $new_data): Define\Model
+ public function edit(Define\Model $model, array $new_data): Model\Inmobiliaria
{
return $this->update($model, ['dv', 'razon', 'abreviacion', 'cuenta', 'banco', 'sociedad'], $new_data);
}