You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
950 B
PHP
39 lines
950 B
PHP
<?php
|
|
|
|
|
|
namespace Gitlab\Api;
|
|
|
|
|
|
use Gitlab\Api\Plugin\Authentication;
|
|
use Http\Client\Common\Plugin\AddHostPlugin;
|
|
use Http\Client\Common\Plugin\AddPathPlugin;
|
|
use Http\Client\Common\PluginClient;
|
|
use Http\Client\HttpAsyncClient;
|
|
use Http\Discovery\UriFactoryDiscovery;
|
|
use Http\Message\UriFactory;
|
|
|
|
class ClientFactory
|
|
{
|
|
public static function create(
|
|
HttpAsyncClient $client,
|
|
Authentication $authentication,
|
|
string $host
|
|
) : PluginClient
|
|
{
|
|
/**
|
|
* @var UriFactory
|
|
*/
|
|
$uriFactory = UriFactoryDiscovery::find();
|
|
|
|
$plugins = [
|
|
$authentication,
|
|
// Prepend api version to path
|
|
new AddPathPlugin($uriFactory->createUri('/api/v4/')),
|
|
// Make sure host is set to the right uri
|
|
new AddHostPlugin($uriFactory->createUri($host), ['replace' => true]),
|
|
|
|
];
|
|
|
|
return new PluginClient($client, $plugins);
|
|
}
|
|
} |