Editar cuota
This commit is contained in:
59
app/src/Service/Contabilidad/Banco.php
Normal file
59
app/src/Service/Contabilidad/Banco.php
Normal file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
namespace Incoviba\Service\Contabilidad;
|
||||
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Incoviba\Common\Ideal;
|
||||
use Incoviba\Common\Implement;
|
||||
use Incoviba\Controller\withRedis;
|
||||
use Incoviba\Model;
|
||||
use Incoviba\Repository;
|
||||
use Incoviba\Service\Redis;
|
||||
|
||||
class Banco extends Ideal\Service
|
||||
{
|
||||
use withRedis;
|
||||
|
||||
public function __construct(LoggerInterface $logger, protected Repository\Contabilidad\Banco $bancoRepository,
|
||||
protected Redis $redisService)
|
||||
{
|
||||
parent::__construct($logger);
|
||||
}
|
||||
|
||||
protected string $redisKey = 'bancos';
|
||||
|
||||
public function getAll(null|string|array $ordering = null): array
|
||||
{
|
||||
try {
|
||||
return $this->fetchRedis($this->redisService, $this->redisKey);
|
||||
} catch (Implement\Exception\EmptyRedis) {
|
||||
try {
|
||||
$bancos = array_map([$this, 'process'], $this->bancoRepository->fetchAll($ordering));
|
||||
$this->saveRedis($this->redisService, $this->redisKey, $bancos);
|
||||
return $bancos;
|
||||
} catch (Implement\Exception\EmptyResult) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
public function getById(int $banco_id): ?Model\Contabilidad\Banco
|
||||
{
|
||||
try {
|
||||
$bancos = $this->getAll();
|
||||
$bancos = array_filter($bancos, fn($banco) => $banco->getId() === $banco_id);
|
||||
return array_shift($bancos);
|
||||
} catch (Implement\Exception\EmptyRedis) {
|
||||
try {
|
||||
$banco = $this->process($this->bancoRepository->fetchById($banco_id));
|
||||
$this->saveRedis($this->redisService, $this->redisKey, [$banco]);
|
||||
return $banco;
|
||||
} catch (Implement\Exception\EmptyResult) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function process(Model\Contabilidad\Banco $banco): Model\Contabilidad\Banco
|
||||
{
|
||||
return $banco;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user