204 lines
10 KiB
PHP
204 lines
10 KiB
PHP
<?php
|
|
|
|
use Psr\Container\ContainerInterface;
|
|
|
|
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_SEPARATOR') ? $container->get('COOKIE_SEPARATOR') : 'g'
|
|
);
|
|
},
|
|
Incoviba\Service\Money::class => function(ContainerInterface $container) {
|
|
$mindicador = new Incoviba\Service\Money\MiIndicador(new GuzzleHttp\Client([
|
|
'base_uri' => 'https://mindicador.cl/api/',
|
|
'headers' => ['Accept' => 'application/json']
|
|
]));
|
|
$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\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\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\Contabilidad\Movimiento::class),
|
|
$container->get(Incoviba\Service\Contabilidad\Movimiento::class),
|
|
$container->get(Incoviba\Repository\Contabilidad\Cartola::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\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\Contabilidad\Nubox::class),
|
|
$container->get(Incoviba\Service\Redis::class),
|
|
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'));
|
|
},
|
|
Incoviba\Service\Informe::class => function(ContainerInterface $container) {
|
|
return (new Incoviba\Service\Informe(
|
|
$container->get(Psr\Log\LoggerInterface::class),
|
|
$container->get('folders')->get('informes'))
|
|
)
|
|
->register('xlsx', Incoviba\Service\Informe\Excel::class);
|
|
},
|
|
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) {
|
|
return new GuzzleHttp\Client([
|
|
'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'));
|
|
return $service;
|
|
},
|
|
Incoviba\Service\Venta\MediosPago\Toku::class => function(ContainerInterface $container) {
|
|
return (new Incoviba\Service\Venta\MediosPago\Toku(
|
|
$container->get('externalLogger')
|
|
))
|
|
->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));
|
|
},
|
|
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('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));
|
|
}
|
|
];
|