public function __construct($apiKey = null, HttpClient $httpClient = null, $apiEndpoint = 'api.mailgun.net', ResponseDeserializer $deserializer = null, HttpClientConfigurator $clientConfigurator = null, RequestBuilder $requestBuilder = null)
{
$this->apiKey = $apiKey;
$this->restClient = new RestClient($apiKey, $apiEndpoint, $httpClient);
if (null === $clientConfigurator) {
$clientConfigurator = new HttpClientConfigurator();
/*
* To be backward compatible
*/
if ($apiEndpoint !== 'api.mailgun.net') {
$clientConfigurator->setEndpoint($apiEndpoint);
}
if ($httpClient !== null) {
$clientConfigurator->setHttpClient($httpClient);
}
}
$clientConfigurator->setApiKey($apiKey);
$this->httpClient = $clientConfigurator->createConfiguredClient();
$this->requestBuilder = $requestBuilder ?: new RequestBuilder();
$this->deserializer = $deserializer ?: new ModelDeserializer();
}