develop (#45)
Co-authored-by: Juan Pablo Vial <jpvialb@incoviba.cl> Reviewed-on: #45
This commit is contained in:
@ -5,28 +5,8 @@ use DI\Bridge\Slim\Bridge;
|
||||
require_once 'composer.php';
|
||||
|
||||
function buildApp() {
|
||||
$builder = new ContainerBuilder();
|
||||
$folders = [
|
||||
'settings',
|
||||
'setups'
|
||||
];
|
||||
foreach ($folders as $folder_name) {
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
__DIR__,
|
||||
$folder_name
|
||||
]);
|
||||
if (!file_exists($folder)) {
|
||||
continue;
|
||||
}
|
||||
$files = new FilesystemIterator($folder);
|
||||
foreach ($files as $file) {
|
||||
if ($file->isDir()) {
|
||||
continue;
|
||||
}
|
||||
$builder->addDefinitions($file->getRealPath());
|
||||
}
|
||||
}
|
||||
$app = Bridge::create($builder->build());
|
||||
require_once 'container.php';
|
||||
$app = Bridge::create(buildContainer());
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
__DIR__,
|
||||
'middlewares'
|
||||
|
33
app/setup/container.php
Normal file
33
app/setup/container.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
use Psr\Container\ContainerInterface;
|
||||
use DI\ContainerBuilder;
|
||||
|
||||
/**
|
||||
* @return ContainerInterface
|
||||
* @throws Exception
|
||||
*/
|
||||
function buildContainer(): ContainerInterface
|
||||
{
|
||||
$builder = new ContainerBuilder();
|
||||
$folders = [
|
||||
'settings',
|
||||
'setups'
|
||||
];
|
||||
foreach ($folders as $folder_name) {
|
||||
$folder = implode(DIRECTORY_SEPARATOR, [
|
||||
__DIR__,
|
||||
$folder_name
|
||||
]);
|
||||
if (!file_exists($folder)) {
|
||||
continue;
|
||||
}
|
||||
$files = new FilesystemIterator($folder);
|
||||
foreach ($files as $file) {
|
||||
if ($file->isDir()) {
|
||||
continue;
|
||||
}
|
||||
$builder->addDefinitions($file->getRealPath());
|
||||
}
|
||||
}
|
||||
return $builder->build();
|
||||
}
|
@ -1,2 +1,2 @@
|
||||
<?php
|
||||
//$app->add($app->getContainer()->get(Incoviba\Middleware\Authentication::class));
|
||||
$app->add($app->getContainer()->get(Incoviba\Middleware\Authentication::class));
|
||||
|
@ -1,3 +1,4 @@
|
||||
<?php
|
||||
$app->add($app->getContainer()->get(Incoviba\Middleware\NotFound::class));
|
||||
$app->add($app->getContainer()->get(Incoviba\Middleware\NotAllowed::class));
|
||||
$app->add($app->getContainer()->get(Incoviba\Middleware\Errors::class));
|
2
app/setup/middlewares/97_cors.php
Normal file
2
app/setup/middlewares/97_cors.php
Normal file
@ -0,0 +1,2 @@
|
||||
<?php
|
||||
$app->add($app->getContainer()->get(Incoviba\Middleware\CORS::class));
|
8
app/setup/settings/time.php
Normal file
8
app/setup/settings/time.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
return [
|
||||
DateTimeZone::class => function(ContainerInterface $container) {
|
||||
return new DateTimeZone($container->get('TZ') ?? 'America/Santiago');
|
||||
}
|
||||
];
|
@ -1,8 +1,10 @@
|
||||
<?php
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
return [
|
||||
'urls' => function() {
|
||||
'urls' => function(ContainerInterface $container) {
|
||||
$urls = [
|
||||
'base' => $_ENV['APP_URL'] ?? '',
|
||||
'base' => $container->get('APP_URL') ?? '',
|
||||
];
|
||||
$urls['api'] = implode('/', [
|
||||
$urls['base'],
|
||||
@ -17,5 +19,36 @@ return [
|
||||
'images'
|
||||
]);
|
||||
return (object) $urls;
|
||||
},
|
||||
'apiUrls' => function(ContainerInterface $container) {
|
||||
$permittedPaths = [
|
||||
'/api'
|
||||
];
|
||||
$simplePaths = [
|
||||
'/api/login',
|
||||
'/api/logout'
|
||||
];
|
||||
function addTrailingSlash(array &$paths): array {
|
||||
foreach ($paths as $path) {
|
||||
if (!in_array(rtrim($path, '/') . '/', $paths)) {
|
||||
$paths[] = rtrim($path, '/') . '/';
|
||||
}
|
||||
}
|
||||
return $paths;
|
||||
}
|
||||
addTrailingSlash($permittedPaths);
|
||||
addTrailingSlash($simplePaths);
|
||||
return [
|
||||
'permittedPaths' => $permittedPaths,
|
||||
'simplePaths' => $simplePaths,
|
||||
'externalPaths' => [
|
||||
'/api/external' => [
|
||||
'/toku/success' => [
|
||||
'validator' => $container->get(Incoviba\Service\Venta\MediosPago\Toku::class),
|
||||
'token' => $container->get('TOKU_TOKEN'),
|
||||
]
|
||||
],
|
||||
]
|
||||
];
|
||||
}
|
||||
];
|
||||
|
@ -1,38 +1,155 @@
|
||||
<?php
|
||||
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
return [
|
||||
Psr\Log\LoggerInterface::class => function(ContainerInterface $container) {
|
||||
return new Monolog\Logger('incoviba', [
|
||||
new Monolog\Handler\FilterHandler(
|
||||
(new Monolog\Handler\RotatingFileHandler('/logs/debug.log', 10))
|
||||
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
|
||||
Monolog\Level::Debug,
|
||||
Monolog\Level::Debug
|
||||
),
|
||||
new Monolog\Handler\FilterHandler(
|
||||
(new Monolog\Handler\RotatingFileHandler('/logs/info.log', 10))
|
||||
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
|
||||
Monolog\Level::Info,
|
||||
Monolog\Level::Warning,
|
||||
),
|
||||
new Monolog\Handler\FilterHandler(
|
||||
(new Monolog\Handler\RotatingFileHandler('/logs/error.log', 10))
|
||||
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
|
||||
Monolog\Level::Error,
|
||||
Monolog\Level::Error
|
||||
),
|
||||
new Monolog\Handler\FilterHandler(
|
||||
(new Monolog\Handler\RotatingFileHandler('/logs/critical.log', 10))
|
||||
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
|
||||
Monolog\Level::Critical
|
||||
)
|
||||
], [
|
||||
$container->get(Monolog\Processor\PsrLogMessageProcessor::class),
|
||||
$container->get(Monolog\Processor\WebProcessor::class),
|
||||
$container->get(Monolog\Processor\IntrospectionProcessor::class),
|
||||
$container->get(Monolog\Processor\MemoryUsageProcessor::class),
|
||||
$container->get(Monolog\Processor\MemoryPeakUsageProcessor::class)
|
||||
Monolog\Processor\WebProcessor::class => function(ContainerInterface $container) {
|
||||
return new Monolog\Processor\WebProcessor(null, [
|
||||
'HTTP_X_FORWARDED_FOR',
|
||||
'HTTP_CLIENT_IP',
|
||||
'HTTP_X_CLIENT_IP',
|
||||
'HTTP_X_REAL_IP',
|
||||
'REMOTE_ADDR',
|
||||
'REMOTE_HOST',
|
||||
]);
|
||||
}
|
||||
},
|
||||
Monolog\Formatter\LineFormatter::class => function(ContainerInterface $container) {
|
||||
return (new Monolog\Formatter\LineFormatter(null, null, false, false, true))
|
||||
->setBasePath('/code/');
|
||||
},
|
||||
'baseMonologProcessors' => function(ContainerInterface $container) {
|
||||
return [
|
||||
$container->get(Monolog\Processor\IntrospectionProcessor::class),
|
||||
$container->get(Monolog\Processor\WebProcessor::class),
|
||||
$container->get(Monolog\Processor\MemoryUsageProcessor::class),
|
||||
$container->get(Monolog\Processor\MemoryPeakUsageProcessor::class),
|
||||
$container->get(Monolog\Processor\PsrLogMessageProcessor::class),
|
||||
$container->get(Monolog\Processor\UidProcessor::class),
|
||||
$container->get(Incoviba\Common\Implement\Log\Processor\Exception::class),
|
||||
];
|
||||
},
|
||||
'baseDefaultHandlers' => function(ContainerInterface $container) {
|
||||
return [
|
||||
'critical' => [
|
||||
'handler' => Monolog\Handler\RotatingFileHandler::class,
|
||||
'filename' => 'critical.log',
|
||||
'levels' => Monolog\Level::Critical
|
||||
],
|
||||
'error' => [
|
||||
'handler' => Monolog\Handler\RotatingFileHandler::class,
|
||||
'filename' => 'error.log',
|
||||
'levels' => [Monolog\Level::Error, Monolog\Level::Error],
|
||||
],
|
||||
'notices' => [
|
||||
'handler' => Incoviba\Common\Implement\Log\Handler\MySQL::class,
|
||||
'levels' => [Monolog\Level::Notice, Monolog\Level::Warning]
|
||||
],
|
||||
'debug' => [
|
||||
'handler' => Monolog\Handler\RedisHandler::class,
|
||||
'name' => 'notices',
|
||||
'levels' => [Monolog\Level::Debug, Monolog\Level::Info]
|
||||
],
|
||||
];
|
||||
},
|
||||
'developmentHandlers' => function(ContainerInterface $container) {
|
||||
$baseHandlers = $container->get('baseDefaultHandlers');
|
||||
$baseHandlers['critical']['handler'] = Monolog\Handler\StreamHandler::class;
|
||||
$baseHandlers['error']['handler'] = Monolog\Handler\StreamHandler::class;
|
||||
$baseHandlers['notices']['handler'] = Monolog\Handler\StreamHandler::class;
|
||||
$baseHandlers['notices']['filename'] = 'notices.log';
|
||||
$baseHandlers['debug']['handler'] = Monolog\Handler\StreamHandler::class;
|
||||
$baseHandlers['debug']['filename'] = 'debug.log';
|
||||
return $baseHandlers;
|
||||
},
|
||||
'defaultMonologHandlers' => function(ContainerInterface $container) {
|
||||
$key = 'baseDefault';
|
||||
if ($container->has('ENVIRONMENT') and $container->get('ENVIRONMENT') === 'development') {
|
||||
$key = 'development';
|
||||
if (!$container->has("{$key}Handlers")) {
|
||||
$key = 'baseDefault';
|
||||
}
|
||||
}
|
||||
$baseHandlers = $container->get("{$key}Handlers");
|
||||
$builder = $container->get(Incoviba\Common\Implement\Log\Processor\ArrayBuilder::class);
|
||||
return $builder->build($baseHandlers);
|
||||
},
|
||||
Psr\Log\LoggerInterface::class => function(ContainerInterface $container) {
|
||||
return new Monolog\Logger('incoviba',
|
||||
$container->get('defaultMonologHandlers'),
|
||||
[$container->get(Incoviba\Common\Implement\Log\Processor\User::class)]
|
||||
+ $container->get('baseMonologProcessors'),
|
||||
$container->get(DateTimeZone::class)
|
||||
);
|
||||
},
|
||||
'jsonHandlers' => function(ContainerInterface $container) {
|
||||
$baseHandlers = $container->get('baseDefaultHandlers');
|
||||
$baseHandlers['debug']['handler'] = Monolog\Handler\RotatingFileHandler::class;
|
||||
$baseHandlers['debug']['filename'] = 'info.json';
|
||||
$baseHandlers['debug']['formatter'] = Monolog\Formatter\JsonFormatter::class;
|
||||
$baseHandlers['notices']['handler'] = Monolog\Handler\RotatingFileHandler::class;
|
||||
$baseHandlers['notices']['filename'] = 'notices.json';
|
||||
$baseHandlers['notices']['formatter'] = Monolog\Formatter\JsonFormatter::class;
|
||||
return $baseHandlers;
|
||||
},
|
||||
'jsonLogger' => function(ContainerInterface $container) {
|
||||
$builder = $container->get(Incoviba\Common\Implement\Log\Processor\ArrayBuilder::class);
|
||||
$handlers = $builder->build($container->get('jsonHandlers'));
|
||||
return new Monolog\Logger('json',
|
||||
$handlers,
|
||||
[$container->get(Incoviba\Common\Implement\Log\Processor\User::class)]
|
||||
+ $container->get('baseMonologProcessors'),
|
||||
$container->get(DateTimeZone::class)
|
||||
);
|
||||
},
|
||||
'loginLogger' => function(ContainerInterface $container) {
|
||||
return new Monolog\Logger('login',
|
||||
[
|
||||
new Monolog\Handler\RedisHandler($container->get(Predis\ClientInterface::class), 'logs:login'),
|
||||
],
|
||||
$container->get('baseMonologProcessors'),
|
||||
$container->get(DateTimeZone::class)
|
||||
);
|
||||
},
|
||||
'accessLogger' => function(ContainerInterface $container) {
|
||||
return new Monolog\Logger('access',
|
||||
[
|
||||
new Monolog\Handler\RedisHandler($container->get(Predis\ClientInterface::class), 'logs:access'),
|
||||
],
|
||||
$container->get('baseMonologProcessors'),
|
||||
$container->get(DateTimeZone::class)
|
||||
);
|
||||
},
|
||||
'externalHandlers' => function(ContainerInterface $container) {
|
||||
return [
|
||||
'critical' => [
|
||||
'handler' => Monolog\Handler\RedisHandler::class,
|
||||
'name' => 'external:critical',
|
||||
'levels' => Monolog\Level::Critical
|
||||
],
|
||||
'error' => [
|
||||
'handler' => Monolog\Handler\RedisHandler::class,
|
||||
'name' => 'external:error',
|
||||
'levels' => [Monolog\Level::Error, Monolog\Level::Error],
|
||||
],
|
||||
'notices' => [
|
||||
'handler' => Monolog\Handler\RedisHandler::class,
|
||||
'name' => 'external:notices',
|
||||
'levels' => [Monolog\Level::Notice, Monolog\Level::Warning],
|
||||
],
|
||||
'debug' => [
|
||||
'handler' => Monolog\Handler\RedisHandler::class,
|
||||
'name' => 'external:debug',
|
||||
'levels' => [Monolog\Level::Debug, Monolog\Level::Info],
|
||||
],
|
||||
];
|
||||
},
|
||||
'externalLogger' => function(ContainerInterface $container) {
|
||||
$builder = $container->get(Incoviba\Common\Implement\Log\Processor\ArrayBuilder::class);
|
||||
$handlers = $builder->build($container->get('externalHandlers'));
|
||||
return new Monolog\Logger('external',
|
||||
$handlers,
|
||||
$container->get('baseMonologProcessors'),
|
||||
$container->get(DateTimeZone::class)
|
||||
);
|
||||
},
|
||||
];
|
||||
|
@ -6,7 +6,7 @@ return [
|
||||
return new Incoviba\Middleware\Authentication(
|
||||
$container->get(Psr\Http\Message\ResponseFactoryInterface::class),
|
||||
$container->get(Incoviba\Service\Login::class),
|
||||
$container->get(Psr\Log\LoggerInterface::class),
|
||||
$container->get('loginLogger'),
|
||||
$container->get(Incoviba\Common\Alias\View::class),
|
||||
implode('/', [$container->get('APP_URL'), 'login'])
|
||||
);
|
||||
@ -14,7 +14,25 @@ return [
|
||||
Incoviba\Middleware\API::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Middleware\API(
|
||||
$container->get(Psr\Http\Message\ResponseFactoryInterface::class),
|
||||
$container->get('API_KEY')
|
||||
$container->get(Psr\Log\LoggerInterface::class),
|
||||
$container->get(Incoviba\Service\API::class),
|
||||
$container->get(Incoviba\Service\Login::class),
|
||||
$container->get('API_KEY'),
|
||||
$container->get('apiUrls'),
|
||||
);
|
||||
},
|
||||
Incoviba\Middleware\NotFound::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Middleware\NotFound(
|
||||
$container->get('accessLogger'),
|
||||
$container->get(Psr\Http\Message\ResponseFactoryInterface::class),
|
||||
$container->get(Incoviba\Common\Alias\View::class)
|
||||
);
|
||||
},
|
||||
Incoviba\Middleware\NotAllowed::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Middleware\NotAllowed(
|
||||
$container->get('accessLogger'),
|
||||
$container->get(Psr\Http\Message\ResponseFactoryInterface::class),
|
||||
$container->get(Incoviba\Common\Alias\View::class)
|
||||
);
|
||||
}
|
||||
];
|
||||
|
@ -6,10 +6,12 @@ return [
|
||||
Incoviba\Service\Login::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\Login(
|
||||
$container->get(Incoviba\Repository\Login::class),
|
||||
$container->get(Incoviba\Repository\User::class),
|
||||
$container->get('COOKIE_NAME'),
|
||||
$container->get('MAX_LOGIN_HOURS'),
|
||||
$container->has('COOKIE_DOMAIN') ? $container->get('COOKIE_DOMAIN') : '',
|
||||
$container->has('COOKIE_PATH') ? $container->get('COOKIE_PATH') : ''
|
||||
$container->has('COOKIE_PATH') ? $container->get('COOKIE_PATH') : '',
|
||||
$container->has('COOKIE_SEPARATOR') ? $container->get('COOKIE_SEPARATOR') : 'g'
|
||||
);
|
||||
},
|
||||
Incoviba\Service\Money::class => function(ContainerInterface $container) {
|
||||
@ -20,46 +22,69 @@ return [
|
||||
$ine = new Incoviba\Service\Money\Ine(new GuzzleHttp\Client([
|
||||
'base_uri' => 'https://api-calculadora.ine.cl/ServiciosCalculadoraVariacion'
|
||||
]));
|
||||
$sii = new Incoviba\Service\Money\SII(new GuzzleHttp\Client([
|
||||
'base_uri' => 'https://www.sii.cl/valores_y_fechas/'
|
||||
]), $container->get(Incoviba\Repository\UF::class));
|
||||
return (new Incoviba\Service\Money($container->get(Psr\Log\LoggerInterface::class)))
|
||||
->register('uf', $mindicador)
|
||||
->register('uf', $sii)
|
||||
->register('usd', $mindicador)
|
||||
->register('ipc', $ine);
|
||||
},
|
||||
Predis\Client::class => function(ContainerInterface $container) {
|
||||
return new Predis\Client([
|
||||
Predis\ClientInterface::class => function(ContainerInterface $container) {
|
||||
$options = [
|
||||
'scheme' => 'tcp',
|
||||
'host' => $container->get('REDIS_HOST'),
|
||||
'port' => $container->get('REDIS_PORT')
|
||||
]);
|
||||
];
|
||||
if ($container->has('REDIS_USER')) {
|
||||
$options['username'] = $container->get('REDIS_USER');
|
||||
}
|
||||
if ($container->has('REDIS_PASSWORD')) {
|
||||
$options['password'] = $container->get('REDIS_PASSWORD');
|
||||
}
|
||||
return new Predis\Client($options);
|
||||
},
|
||||
Incoviba\Service\Cartola::class => function(ContainerInterface $container) {
|
||||
return (new Incoviba\Service\Cartola(
|
||||
Incoviba\Service\Contabilidad\Cartola::class => function(ContainerInterface $container) {
|
||||
return (new Incoviba\Service\Contabilidad\Cartola(
|
||||
$container->get(Psr\Log\LoggerInterface::class),
|
||||
$container->get(Psr\Http\Message\StreamFactoryInterface::class),
|
||||
$container->get(Incoviba\Common\Define\Contabilidad\Exporter::class),
|
||||
$container->get(Incoviba\Repository\Inmobiliaria::class),
|
||||
$container->get(Incoviba\Repository\Inmobiliaria\Cuenta::class),
|
||||
$container->get(Incoviba\Repository\Movimiento::class),
|
||||
$container->get(Incoviba\Service\Movimiento::class),
|
||||
$container->get(Incoviba\Repository\Cartola::class)
|
||||
$container->get(Incoviba\Repository\Contabilidad\Movimiento::class),
|
||||
$container->get(Incoviba\Service\Contabilidad\Movimiento::class),
|
||||
$container->get(Incoviba\Repository\Contabilidad\Cartola::class)
|
||||
))
|
||||
->register('security', $container->get(Incoviba\Service\Cartola\Security::class))
|
||||
->register('itau', $container->get(Incoviba\Service\Cartola\Itau::class))
|
||||
->register('santander', $container->get(Incoviba\Service\Cartola\Santander::class));
|
||||
->register('security', $container->get(Incoviba\Service\Contabilidad\Cartola\Security::class))
|
||||
->register('itau', $container->get(Incoviba\Service\Contabilidad\Cartola\Itau::class))
|
||||
->register('santander', $container->get(Incoviba\Service\Contabilidad\Cartola\Santander::class))
|
||||
->register('bci', $container->get(Incoviba\Service\Contabilidad\Cartola\BCI::class));
|
||||
},
|
||||
Incoviba\Common\Define\Contabilidad\Exporter::class => function(ContainerInterface $container) {
|
||||
return $container->get(Incoviba\Service\Contabilidad\Exporter\Nubox::class);
|
||||
},
|
||||
Incoviba\Service\Contabilidad\Exporter\Nubox::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\Contabilidad\Exporter\Nubox($container->get(Incoviba\Repository\CentroCosto::class),
|
||||
return new Incoviba\Service\Contabilidad\Exporter\Nubox($container->get(Incoviba\Repository\Contabilidad\CentroCosto::class),
|
||||
$container->get('folders')->get('uploads'));
|
||||
},
|
||||
Incoviba\Service\Contabilidad\Nubox::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\Contabilidad\Nubox(
|
||||
$container->get(Psr\Log\LoggerInterface::class),
|
||||
$container->get(Incoviba\Repository\Nubox::class),
|
||||
$container->get(Incoviba\Repository\Contabilidad\Nubox::class),
|
||||
$container->get(Incoviba\Service\Redis::class),
|
||||
new GuzzleHttp\Client(),
|
||||
new GuzzleHttp\Client([
|
||||
'defaults' => [
|
||||
'config' => [
|
||||
'curl' => [
|
||||
CURLOPT_SSL_VERIFYPEER => false,
|
||||
CURLOPT_SSL_VERIFYHOST => false,
|
||||
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_3
|
||||
],
|
||||
'verify' => false
|
||||
]
|
||||
],
|
||||
]),
|
||||
$container->get(Psr\Http\Message\RequestFactoryInterface::class),
|
||||
$container->get('nubox')->get('url'));
|
||||
},
|
||||
@ -70,12 +95,139 @@ return [
|
||||
)
|
||||
->register('xlsx', Incoviba\Service\Informe\Excel::class);
|
||||
},
|
||||
Incoviba\Service\Contabilidad\Informe\Tesoreria\Excel::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\Contabilidad\Informe\Tesoreria\Excel(
|
||||
Incoviba\Service\Contabilidad\Informe\Tesoreria\Output\Excel::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\Contabilidad\Informe\Tesoreria\Output\Excel(
|
||||
$container->get(Psr\Log\LoggerInterface::class),
|
||||
$container->get('folders')->get('informes'),
|
||||
$container->get(Incoviba\Service\UF::class),
|
||||
$container->get(Incoviba\Service\USD::class)
|
||||
);
|
||||
},
|
||||
Incoviba\Service\Contabilidad\Cartola\Santander::class => function(ContainerInterface $container) {
|
||||
return (new Incoviba\Service\Contabilidad\Cartola\Santander(
|
||||
$container->get(Psr\Log\LoggerInterface::class),
|
||||
))
|
||||
->registerSub($container->get(Incoviba\Service\Contabilidad\Cartola\Santander\OfficeBanking::class));
|
||||
},
|
||||
Incoviba\Service\Contabilidad\Cartola\BCI::class => function(ContainerInterface $container) {
|
||||
return (new Incoviba\Service\Contabilidad\Cartola\BCI(
|
||||
$container->get(Psr\Log\LoggerInterface::class),
|
||||
))
|
||||
->registerSub($container->get(Incoviba\Service\Contabilidad\Cartola\BCI\Mes::class));
|
||||
},
|
||||
'TokuClient' => function(ContainerInterface $container) {
|
||||
$logger = $container->get('externalLogger');
|
||||
$stack = GuzzleHttp\HandlerStack::create();
|
||||
$stack->push(GuzzleHttp\Middleware::mapRequest(function(Psr\Http\Message\RequestInterface $request) use ($logger) {
|
||||
$logger->info('Toku Request', [
|
||||
'method' => $request->getMethod(),
|
||||
'uri' => (string) $request->getUri(),
|
||||
'headers' => $request->getHeaders(),
|
||||
'body' => $request->getBody()->getContents(),
|
||||
]);
|
||||
return $request;
|
||||
}));
|
||||
return new GuzzleHttp\Client([
|
||||
'handler' => $stack,
|
||||
'base_uri' => $container->get('TOKU_URL'),
|
||||
'headers' => [
|
||||
'x-api-key' => $container->get('TOKU_TOKEN'),
|
||||
'accept' => 'application/json'
|
||||
]
|
||||
]);
|
||||
},
|
||||
Incoviba\Service\Venta\MediosPago\Toku\Customer::class => function(ContainerInterface $container) {
|
||||
$service = new Incoviba\Service\Venta\MediosPago\Toku\Customer(
|
||||
$container->get('TokuClient'),
|
||||
$container->get(Incoviba\Repository\Venta\MediosPago\Toku\Customer::class)
|
||||
);
|
||||
$service->setLogger($container->get('externalLogger'));
|
||||
return $service;
|
||||
},
|
||||
Incoviba\Service\Venta\MediosPago\Toku\Subscription::class => function(ContainerInterface $container) {
|
||||
$service = new Incoviba\Service\Venta\MediosPago\Toku\Subscription(
|
||||
$container->get('TokuClient'),
|
||||
$container->get(Incoviba\Repository\Venta\MediosPago\Toku\Subscription::class),
|
||||
$container->get(Incoviba\Service\Venta::class)
|
||||
);
|
||||
$service->setLogger($container->get('externalLogger'));
|
||||
return $service;
|
||||
},
|
||||
Incoviba\Service\Venta\MediosPago\Toku\Invoice::class => function(ContainerInterface $container) {
|
||||
$service = new Incoviba\Service\Venta\MediosPago\Toku\Invoice(
|
||||
$container->get('TokuClient'),
|
||||
$container->get(Incoviba\Repository\Venta\MediosPago\Toku\Invoice::class),
|
||||
$container->get(Incoviba\Service\Venta\Pago::class),
|
||||
$container->get(Incoviba\Service\UF::class)
|
||||
);
|
||||
$service->setLogger($container->get('externalLogger'));
|
||||
$service->setAltLogger($container->get('jsonLogger'));
|
||||
return $service;
|
||||
},
|
||||
Incoviba\Service\Venta\MediosPago\Toku::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\Venta\MediosPago\Toku(
|
||||
$container->get('externalLogger'),
|
||||
$container->get(Incoviba\Common\Define\Connection::class),
|
||||
$container->get(Incoviba\Service\HMAC::class)
|
||||
)
|
||||
->register('customer', $container->get(Incoviba\Service\Venta\MediosPago\Toku\Customer::class))
|
||||
->register('subscription', $container->get(Incoviba\Service\Venta\MediosPago\Toku\Subscription::class))
|
||||
->register('invoice', $container->get(Incoviba\Service\Venta\MediosPago\Toku\Invoice::class));
|
||||
},
|
||||
Pheanstalk\Pheanstalk::class => function(ContainerInterface $container) {
|
||||
return Pheanstalk\Pheanstalk::create(
|
||||
$container->get('BEANSTALKD_HOST'),
|
||||
$container->has('BEANSTALKD_PORT') ? $container->get('BEANSTALKD_PORT') : 11300
|
||||
);
|
||||
},
|
||||
Incoviba\Service\MQTT::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\MQTT()
|
||||
->register('default', $container->get(Incoviba\Service\MQTT\Pheanstalk::class));
|
||||
},
|
||||
Incoviba\Service\Queue::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\Queue(
|
||||
$container->get(Psr\Log\LoggerInterface::class),
|
||||
$container->get(Incoviba\Service\Job::class),
|
||||
$container->get(Incoviba\Service\Worker\Request::class)
|
||||
)
|
||||
->register('request', $container->get(Incoviba\Service\Worker\Request::class))
|
||||
->register('service', $container->get(Incoviba\Service\Worker\Service::class))
|
||||
->register('dummy', $container->get(Incoviba\Service\Worker\Dummy::class))
|
||||
->register('checkExternal', $container->get(Incoviba\Service\Worker\CheckExternal::class));
|
||||
},
|
||||
Incoviba\Service\Worker\Request::class => function(ContainerInterface $container) {
|
||||
$apiKey = md5($container->get('API_KEY'));
|
||||
$key = $apiKey;
|
||||
$loginService = $container->get(Incoviba\Service\Login::class);
|
||||
if ($loginService->isIn()) {
|
||||
$token = $loginService->getToken();
|
||||
$key = "{$apiKey}{$loginService->getSeparator()}{$token}";
|
||||
}
|
||||
return new Incoviba\Service\Worker\Request(
|
||||
$container->get(Psr\Log\LoggerInterface::class),
|
||||
new GuzzleHttp\Client([
|
||||
'base_uri' => 'http://incoviba_proxy/api',
|
||||
'headers' => [
|
||||
'Authorization' => "Bearer {$key}"
|
||||
]
|
||||
])
|
||||
);
|
||||
},
|
||||
Incoviba\Service\Worker\CheckExternal::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\Worker\CheckExternal(
|
||||
$container->get('externalLogger'),
|
||||
$container
|
||||
);
|
||||
},
|
||||
Incoviba\Service\External::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\External(
|
||||
$container->get('externalLogger'),
|
||||
$container->get(Incoviba\Service\Queue::class)
|
||||
)
|
||||
->register($container->get(Incoviba\Service\Venta\MediosPago\Toku::class));
|
||||
},
|
||||
Incoviba\Service\FileUpload::class => function(ContainerInterface $container) {
|
||||
return new Incoviba\Service\FileUpload($container->get(Psr\Log\LoggerInterface::class))
|
||||
->register($container->get(Incoviba\Service\FileUpload\ExcelBase::class));
|
||||
}
|
||||
];
|
||||
|
@ -18,11 +18,11 @@ return [
|
||||
if ($global_variables['login']->isIn()) {
|
||||
$global_variables['user'] = $global_variables['login']->getUser();
|
||||
}
|
||||
return new Incoviba\Common\Alias\View(
|
||||
return (new Incoviba\Common\Alias\View(
|
||||
$folders->get('templates'),
|
||||
$folders->get('cache'),
|
||||
null,
|
||||
$global_variables
|
||||
);
|
||||
));#->setOfuscator($container->get(Incoviba\Service\Ofuscator::class));
|
||||
}
|
||||
];
|
||||
|
Reference in New Issue
Block a user