Redis
This commit is contained in:
@ -1,39 +1,51 @@
|
||||
<?php
|
||||
namespace Incoviba\Controller\API;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Incoviba\Common\Implement\Exception\EmptyRedis;
|
||||
use Incoviba\Common\Implement\Exception\EmptyResult;
|
||||
use Incoviba\Repository;
|
||||
use Incoviba\Controller\withRedis;
|
||||
use Incoviba\Model;
|
||||
use Incoviba\Repository;
|
||||
use Incoviba\Service;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
|
||||
class Proyectos
|
||||
{
|
||||
use withJson, withRedis;
|
||||
|
||||
public function list(ServerRequestInterface $request, ResponseInterface $response, Repository\Proyecto $proyectoRepository): ResponseInterface
|
||||
public function list(ServerRequestInterface $request, ResponseInterface $response, Service\Redis $redisService,
|
||||
Repository\Proyecto $proyectoRepository): ResponseInterface
|
||||
{
|
||||
$output = ['total' => 0];
|
||||
$output = ['total' => 0, 'proyectos' => []];
|
||||
$redisKey = 'proyectos:activos';
|
||||
try {
|
||||
$proyectos = $proyectoRepository->fetchAllActive();
|
||||
$output['proyectos'] = $proyectos;
|
||||
$output['total'] = count($proyectos);
|
||||
} catch (EmptyResult) {}
|
||||
$output['proyectos'] = $this->fetchRedis($redisService, $redisKey);
|
||||
$output['total'] = count($output['proyectos']);
|
||||
} catch (EmptyRedis) {
|
||||
try {
|
||||
$output['proyectos'] = $proyectoRepository->fetchAllActive();
|
||||
$output['total'] = count($output['proyectos']);
|
||||
$this->saveRedis($redisService, $redisKey, $output['proyectos']);
|
||||
} catch (EmptyResult) {}
|
||||
}
|
||||
return $this->withJson($response, $output);
|
||||
}
|
||||
public function escriturando(ServerRequestInterface $request, ResponseInterface $response, Repository\Proyecto $proyectoRepository): ResponseInterface
|
||||
public function escriturando(ServerRequestInterface $request, ResponseInterface $response,
|
||||
Service\Redis $redisService, Repository\Proyecto $proyectoRepository): ResponseInterface
|
||||
{
|
||||
$output = [
|
||||
'total' => 0,
|
||||
'proyectos' => []
|
||||
];
|
||||
$output = ['total' => 0, 'proyectos' => []];
|
||||
$redisKey = 'proyectos:escriturando';
|
||||
try {
|
||||
$proyectos = $proyectoRepository->fetchAllEscriturando();
|
||||
$output['proyectos'] = $proyectos;
|
||||
$output['total'] = count($proyectos);
|
||||
} catch (EmptyResult) {}
|
||||
$output['proyectos'] = $this->fetchRedis($redisService, $redisKey);
|
||||
$output['total'] = count($output['proyectos']);
|
||||
} catch (EmptyRedis) {
|
||||
try {
|
||||
$output['proyectos'] = $proyectoRepository->fetchAllEscriturando();
|
||||
$output['total'] = count($output['proyectos']);
|
||||
$this->saveRedis($redisService, $redisKey, $output['proyectos']);
|
||||
} catch (EmptyResult) {}
|
||||
}
|
||||
return $this->withJson($response, $output);
|
||||
}
|
||||
public function unidades(ServerRequestInterface $request, ResponseInterface $response,
|
||||
@ -41,7 +53,7 @@ class Proyectos
|
||||
int $proyecto_id): ResponseInterface
|
||||
{
|
||||
$output = ['proyecto_id' => $proyecto_id, 'unidades' => [], 'total' => 0];
|
||||
$redisKey = "unidades-proyecto-{$proyecto_id}";
|
||||
$redisKey = "unidades:proyecto:{$proyecto_id}";
|
||||
try {
|
||||
$output = $this->fetchRedis($redisService, $redisKey);
|
||||
} catch (EmptyRedis) {
|
||||
@ -66,21 +78,29 @@ class Proyectos
|
||||
}
|
||||
return $this->withJson($response, $output);
|
||||
}
|
||||
public function disponibles(ServerRequestInterface $request, ResponseInterface $response, Repository\Venta\Unidad $unidadRepository, int $proyecto_id): ResponseInterface
|
||||
public function disponibles(ServerRequestInterface $request, ResponseInterface $response,
|
||||
Service\Redis $redisService, Repository\Venta\Unidad $unidadRepository,
|
||||
int $proyecto_id): ResponseInterface
|
||||
{
|
||||
$output = [
|
||||
'proyecto_id' => $proyecto_id,
|
||||
'unidades' => []
|
||||
];
|
||||
$redisKey = "unidades:disponibles:proyecto:{$proyecto_id}";
|
||||
try {
|
||||
$output['unidades'] = $unidadRepository->fetchDisponiblesByProyecto($proyecto_id);
|
||||
} catch (EmptyResult) {}
|
||||
$output['unidades'] = $this->fetchRedis($redisService, $redisKey);
|
||||
} catch (EmptyRedis) {
|
||||
try {
|
||||
$output['unidades'] = $unidadRepository->fetchDisponiblesByProyecto($proyecto_id);
|
||||
$this->saveRedis($redisService, $redisKey, $output['unidades']);
|
||||
} catch (EmptyResult) {}
|
||||
}
|
||||
return $this->withJson($response, $output);
|
||||
}
|
||||
public function superficies(ServerRequestInterface $request, ResponseInterface $response,
|
||||
Repository\Proyecto $proyectoRepository, Repository\Venta $ventaRepository,
|
||||
Repository\Venta\Unidad $unidadRepository, Service\Redis $redisService,
|
||||
Service\Format $formatService, int $proyecto_id): ResponseInterface
|
||||
Repository\Venta $ventaRepository, Repository\Venta\Unidad $unidadRepository,
|
||||
Service\Redis $redisService, Service\Format $formatService,
|
||||
int $proyecto_id): ResponseInterface
|
||||
{
|
||||
$output = [
|
||||
'proyecto_id' => $proyecto_id,
|
||||
@ -95,7 +115,7 @@ class Proyectos
|
||||
'por_vender' => '0m²'
|
||||
]
|
||||
];
|
||||
$redisKey = "superficices-proyecto-{$proyecto_id}";
|
||||
$redisKey = "superficices:proyecto:{$proyecto_id}";
|
||||
try {
|
||||
$output = $this->fetchRedis($redisService, $redisKey);
|
||||
} catch (EmptyRedis) {
|
||||
|
Reference in New Issue
Block a user