This repository has been archived by the owner on Jul 26, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
ClientBuilder.php
92 lines (81 loc) · 2.04 KB
/
ClientBuilder.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
/**
* This file is part of the Swiftype Site Search PHP Client package.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Swiftype\SiteSearch;
/**
* Use this class to instantiate new client and all their dependencies.
*
* @package Swiftype\Site
*
* @author Aurélien FOUCRET <aurelien.foucret@elastic.co>
*/
class ClientBuilder extends \Swiftype\AbstractClientBuilder
{
/**
* @var string
*/
const URI_PREFIX = '/api/v1/';
/**
* @var string
*/
const API_ENDPOINT = 'https://api.swiftype.com';
/**
* @var string
*/
private $apiKey;
/**
* Instantiate a new client builder.
*
* @param string $hostIdentifier
* @param string $apiKey
*
* @return \Swiftype\SiteSearch\ClientBuilder
*/
public static function create($apiKey = null)
{
return (new static())->setHost(self::API_ENDPOINT)->setApiKey($apiKey);
}
/**
* Set the api key for the client.
*
* @param string $apiKey
*
* @return ClientBuilder
*/
public function setApiKey($apiKey)
{
$this->apiKey = $apiKey;
return $this;
}
/**
* Return the configured Swiftype client.
*
* @return \Swiftype\SiteSearch\Client
*/
public function build()
{
return new Client($this->getEndpointBuilder(), $this->getConnection());
}
/**
* {@inheritdoc}
*/
protected function getHandler()
{
$handler = parent::getHandler();
$handler = new Connection\Handler\RequestAuthenticationHandler($handler, $this->apiKey);
$handler = new \Swiftype\Connection\Handler\RequestUrlPrefixHandler($handler, self::URI_PREFIX);
$handler = new Connection\Handler\ApiErrorHandler($handler);
return $handler;
}
/**
* {@inheritdoc}
*/
protected function getEndpointBuilder()
{
return new \Swiftype\Endpoint\Builder(__NAMESPACE__ . "\Endpoint");
}
}