This commit is contained in:
Juan Pablo Vial
2024-03-18 13:51:57 -03:00
parent 7385225a2e
commit 7c6a397e31
8 changed files with 42 additions and 24 deletions

View File

@ -10,11 +10,6 @@
<div class="column"> <div class="column">
Inmobiliarias Inmobiliarias
</div> </div>
{{--<div class="right aligned column">
<button class="ui icon button" type="button">
<i class="plus icon"></i>
</button>
</div>--}}
</h2> </h2>
<div class="ui divider"></div> <div class="ui divider"></div>
<div class="ui cards"> <div class="ui cards">
@ -22,9 +17,7 @@
<div class="ui card"> <div class="ui card">
<div class="content"> <div class="content">
<div class="header"> <div class="header">
{{$inmobiliaria->abreviacion}} {{$inmobiliaria->abreviacion}}
{{--<a href="{{$urls->base}}/inmobiliaria/{{$inmobiliaria->rut}}">
</a>--}}
</div> </div>
<div class="description">{{$inmobiliaria->razon}} {{$inmobiliaria->tipoSociedad->descripcion}}</div> <div class="description">{{$inmobiliaria->razon}} {{$inmobiliaria->tipoSociedad->descripcion}}</div>
<div class="meta">{{$inmobiliaria->rut()}}</div> <div class="meta">{{$inmobiliaria->rut()}}</div>

View File

@ -0,0 +1,2 @@
<?php
$app->add($app->getContainer()->get(Incoviba\Middleware\CORS::class));

View File

@ -12,6 +12,16 @@ class Inmobiliarias
{ {
use withJson; 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, public function cuentas(ServerRequestInterface $request, ResponseInterface $response,
Repository\Inmobiliaria $inmobiliariaRepository, Repository\Inmobiliaria $inmobiliariaRepository,
Repository\Inmobiliaria\Cuenta $cuentaRepository, int $inmobiliaria_rut): ResponseInterface Repository\Inmobiliaria\Cuenta $cuentaRepository, int $inmobiliaria_rut): ResponseInterface

View File

@ -20,8 +20,8 @@ class Inmobiliarias
$inmobiliarias = []; $inmobiliarias = [];
try { try {
$inmobiliarias = array_map(function($row) use ($inmobiliariaRepository) { $inmobiliarias = array_map(function($row) use ($inmobiliariaRepository) {
return $inmobiliariaRepository->load((array) $row); return $inmobiliariaRepository->load($row);
}, $this->fetchRedis($redisService, $redisKey)); }, $this->fetchRedis($redisService, $redisKey, true));
} catch (EmptyRedis) { } catch (EmptyRedis) {
try { try {
$inmobiliarias = $inmobiliariaRepository->fetchAll(); $inmobiliarias = $inmobiliariaRepository->fetchAll();

View File

@ -6,13 +6,13 @@ use Incoviba\Service;
trait withRedis 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); $jsonString = $redisService->get($redisKey);
if ($jsonString === null) { if ($jsonString === null) {
throw new EmptyRedis($redisKey); 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 public function saveRedis(Service\Redis $redisService, string $redisKey, mixed $value, ?int $expiration = null): void
{ {

View File

@ -0,0 +1,21 @@
<?php
namespace Incoviba\Middleware;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class CORS
{
public function __construct(protected ResponseFactoryInterface $responseFactory) {}
public function __invoke(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
if ($request->getMethod() === 'OPTIONS') {
return $this->responseFactory->createResponse()
->withHeader('Access-Control-Allow-Origin', '*')
->withHeader('Access-Control-Allow-Methods', 'POST,GET,OPTIONS');
}
return $handler->handle($request);
}
}

View File

@ -10,8 +10,6 @@ class Inmobiliaria extends Model
public ?string $dv; public ?string $dv;
public ?string $razon; public ?string $razon;
public ?string $abreviacion; public ?string $abreviacion;
public ?string $cuenta;
public ?Banco $banco;
public ?TipoSociedad $tipoSociedad; public ?TipoSociedad $tipoSociedad;
public function rut(): string public function rut(): string
@ -37,8 +35,6 @@ class Inmobiliaria extends Model
'rut_formateado' => $this->rut(), 'rut_formateado' => $this->rut(),
'razon' => $this->razon ?? '', 'razon' => $this->razon ?? '',
'abreviacion' => $this->abreviacion ?? '', 'abreviacion' => $this->abreviacion ?? '',
'cuenta' => $this->cuenta ?? '',
'banco' => $this->banco ?? '',
'tipo_sociedad' => $this->tipoSociedad ?? '' 'tipo_sociedad' => $this->tipoSociedad ?? ''
]; ];
} }

View File

@ -20,13 +20,9 @@ class Inmobiliaria extends Ideal\Repository
return 'rut'; 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'])) $map = (new Implement\Repository\MapperParser(['dv', 'razon', 'abreviacion']))
->register('banco', (new Implement\Repository\Mapper())
->setFunction(function($data) {
return $this->bancoRepository->fetchById($data['banco']);
}))
->register('sociedad', (new Implement\Repository\Mapper()) ->register('sociedad', (new Implement\Repository\Mapper())
->setProperty('tipoSociedad') ->setProperty('tipoSociedad')
->setFunction(function($data) { ->setFunction(function($data) {
@ -34,7 +30,7 @@ class Inmobiliaria extends Ideal\Repository
})); }));
return $this->parseData(new Model\Inmobiliaria(), $data, $map); 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( $model->rut = $this->saveNew(
['dv', 'razon', 'abreviacion', 'cuenta', 'banco', 'sociedad'], ['dv', 'razon', 'abreviacion', 'cuenta', 'banco', 'sociedad'],
@ -42,7 +38,7 @@ class Inmobiliaria extends Ideal\Repository
); );
return $model; 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); return $this->update($model, ['dv', 'razon', 'abreviacion', 'cuenta', 'banco', 'sociedad'], $new_data);
} }