56 lines
2.5 KiB
PHP
56 lines
2.5 KiB
PHP
<?php
|
|
use Psr\Container\ContainerInterface;
|
|
|
|
return [
|
|
Incoviba\Service\Login::class => function(ContainerInterface $container) {
|
|
$uri = $container->has('API_URL') ? $container->get('API_URL') : 'http://proxy/api';
|
|
$client = new GuzzleHttp\Client([
|
|
'base_uri' => $uri,
|
|
'headers' => [
|
|
'Authorization' => [
|
|
'Bearer ' . md5($container->get('API_KEY'))
|
|
]
|
|
]
|
|
]);
|
|
return new Incoviba\Service\Login(
|
|
$client,
|
|
$container->get(Psr\Log\LoggerInterface::class),
|
|
implode(DIRECTORY_SEPARATOR, [$container->get('folders')->cache, 'token']),
|
|
$container->get('API_USERNAME'),
|
|
$container->get('API_PASSWORD'),
|
|
$container->get('API_KEY')
|
|
);
|
|
},
|
|
GuzzleHttp\HandlerStack::class => function(ContainerInterface $container) {
|
|
$stack = new GuzzleHttp\HandlerStack();
|
|
$stack->setHandler($container->get(GuzzleHttp\Handler\CurlHandler::class));
|
|
$stack->push(GuzzleHttp\Middleware::mapRequest(function(Psr\Http\Message\RequestInterface $request) use ($container) {
|
|
$login = $container->get(Incoviba\Service\Login::class);
|
|
return $request->withHeader('Authorization', "Bearer {$login->getKey()}");
|
|
}));
|
|
$stack->push(GuzzleHttp\Middleware::mapRequest(function(Psr\Http\Message\RequestInterface $request) use ($container) {
|
|
if (!$request->hasHeader('Authorization')) {
|
|
return false;
|
|
}
|
|
return $request;
|
|
}));
|
|
return $stack;
|
|
},
|
|
Psr\Http\Client\ClientInterface::class => function(ContainerInterface $container) {
|
|
return new GuzzleHttp\Client([
|
|
'base_uri' => $container->has('API_URL') ? $container->get('API_URL') : 'http://proxy/api',
|
|
'handler' => $container->get(GuzzleHttp\HandlerStack::class),
|
|
]);
|
|
},
|
|
Incoviba\Service\FastCGI::class => function(ContainerInterface $container) {
|
|
$fcgi = new Incoviba\Service\FastCGI(
|
|
$container->get(Incoviba\Service\Login::class),
|
|
$container->has('SOCKET_HOST') ? $container->get('SOCKET_HOST') : 'web',
|
|
$container->has('SOCKET_PORT') ? $container->get('SOCKET_PORT') : 9090,
|
|
$container->has('SOCKET_ROOT') ? $container->get('SOCKET_ROOT') : '/code/public/index.php'
|
|
);
|
|
$fcgi->setLogger($container->get(Psr\Log\LoggerInterface::class));
|
|
return $fcgi;
|
|
},
|
|
];
|