0byt3m1n1
Path:
/
home
/
kassiope
/
www
/
vendor
/
sendinblue
/
api-v3-sdk
/
lib
/
Api
/
[
Home
]
File: TransactionalEmailsApi.php
<?php /** * TransactionalEmailsApi * PHP version 5 * * @category Class * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen */ /** * SendinBlue API * * SendinBlue provide a RESTFul API that can be used with any languages. With this API, you will be able to : - Manage your campaigns and get the statistics - Manage your contacts - Send transactional Emails and SMS - and much more... You can download our wrappers at https://github.com/orgs/sendinblue **Possible responses** | Code | Message | | :-------------: | ------------- | | 200 | OK. Successful Request | | 201 | OK. Successful Creation | | 202 | OK. Request accepted | | 204 | OK. Successful Update/Deletion | | 400 | Error. Bad Request | | 401 | Error. Authentication Needed | | 402 | Error. Not enough credit, plan upgrade needed | | 403 | Error. Permission denied | | 404 | Error. Object does not exist | | 405 | Error. Method not allowed | | 406 | Error. Not Acceptable | * * OpenAPI spec version: 3.0.0 * Contact: contact@sendinblue.com * Generated by: https://github.com/swagger-api/swagger-codegen.git * Swagger Codegen version: 2.4.12 */ /** * NOTE: This class is auto generated by the swagger code generator program. * https://github.com/swagger-api/swagger-codegen * Do not edit the class manually. */ namespace SendinBlue\Client\Api; use GuzzleHttp\Client; use GuzzleHttp\ClientInterface; use GuzzleHttp\Exception\RequestException; use GuzzleHttp\Psr7\MultipartStream; use GuzzleHttp\Psr7\Request; use GuzzleHttp\RequestOptions; use SendinBlue\Client\ApiException; use SendinBlue\Client\Configuration; use SendinBlue\Client\HeaderSelector; use SendinBlue\Client\ObjectSerializer; /** * TransactionalEmailsApi Class Doc Comment * * @category Class * @package SendinBlue\Client * @author Swagger Codegen team * @link https://github.com/swagger-api/swagger-codegen */ class TransactionalEmailsApi { /** * @var ClientInterface */ protected $client; /** * @var Configuration */ protected $config; /** * @var HeaderSelector */ protected $headerSelector; /** * @param ClientInterface $client * @param Configuration $config * @param HeaderSelector $selector */ public function __construct( ClientInterface $client = null, Configuration $config = null, HeaderSelector $selector = null ) { $this->client = $client ?: new Client(); $this->config = $config ?: new Configuration(); $this->headerSelector = $selector ?: new HeaderSelector(); } /** * @return Configuration */ public function getConfig() { return $this->config; } /** * Operation blockNewDomain * * Add a new domain to the list of blocked domains * * @param \SendinBlue\Client\Model\BlockDomain $blockDomain blockDomain (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return void */ public function blockNewDomain($blockDomain) { $this->blockNewDomainWithHttpInfo($blockDomain); } /** * Operation blockNewDomainWithHttpInfo * * Add a new domain to the list of blocked domains * * @param \SendinBlue\Client\Model\BlockDomain $blockDomain (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of null, HTTP status code, HTTP response headers (array of strings) */ public function blockNewDomainWithHttpInfo($blockDomain) { $returnType = ''; $request = $this->blockNewDomainRequest($blockDomain); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } return [null, $statusCode, $response->getHeaders()]; } catch (ApiException $e) { switch ($e->getCode()) { case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation blockNewDomainAsync * * Add a new domain to the list of blocked domains * * @param \SendinBlue\Client\Model\BlockDomain $blockDomain (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function blockNewDomainAsync($blockDomain) { return $this->blockNewDomainAsyncWithHttpInfo($blockDomain) ->then( function ($response) { return $response[0]; } ); } /** * Operation blockNewDomainAsyncWithHttpInfo * * Add a new domain to the list of blocked domains * * @param \SendinBlue\Client\Model\BlockDomain $blockDomain (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function blockNewDomainAsyncWithHttpInfo($blockDomain) { $returnType = ''; $request = $this->blockNewDomainRequest($blockDomain); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { return [null, $response->getStatusCode(), $response->getHeaders()]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'blockNewDomain' * * @param \SendinBlue\Client\Model\BlockDomain $blockDomain (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function blockNewDomainRequest($blockDomain) { // verify the required parameter 'blockDomain' is set if ($blockDomain === null || (is_array($blockDomain) && count($blockDomain) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $blockDomain when calling blockNewDomain' ); } $resourcePath = '/smtp/blockedDomains'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // body params $_tempBody = null; if (isset($blockDomain)) { $_tempBody = $blockDomain; } if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation createSmtpTemplate * * Create an email template * * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\CreateModel */ public function createSmtpTemplate($smtpTemplate) { list($response) = $this->createSmtpTemplateWithHttpInfo($smtpTemplate); return $response; } /** * Operation createSmtpTemplateWithHttpInfo * * Create an email template * * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings) */ public function createSmtpTemplateWithHttpInfo($smtpTemplate) { $returnType = '\SendinBlue\Client\Model\CreateModel'; $request = $this->createSmtpTemplateRequest($smtpTemplate); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 201: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\CreateModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation createSmtpTemplateAsync * * Create an email template * * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function createSmtpTemplateAsync($smtpTemplate) { return $this->createSmtpTemplateAsyncWithHttpInfo($smtpTemplate) ->then( function ($response) { return $response[0]; } ); } /** * Operation createSmtpTemplateAsyncWithHttpInfo * * Create an email template * * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function createSmtpTemplateAsyncWithHttpInfo($smtpTemplate) { $returnType = '\SendinBlue\Client\Model\CreateModel'; $request = $this->createSmtpTemplateRequest($smtpTemplate); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'createSmtpTemplate' * * @param \SendinBlue\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function createSmtpTemplateRequest($smtpTemplate) { // verify the required parameter 'smtpTemplate' is set if ($smtpTemplate === null || (is_array($smtpTemplate) && count($smtpTemplate) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $smtpTemplate when calling createSmtpTemplate' ); } $resourcePath = '/smtp/templates'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // body params $_tempBody = null; if (isset($smtpTemplate)) { $_tempBody = $smtpTemplate; } if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation deleteBlockedDomain * * Unblock an existing domain from the list of blocked domains * * @param string $domain The name of the domain to be deleted (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return void */ public function deleteBlockedDomain($domain) { $this->deleteBlockedDomainWithHttpInfo($domain); } /** * Operation deleteBlockedDomainWithHttpInfo * * Unblock an existing domain from the list of blocked domains * * @param string $domain The name of the domain to be deleted (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of null, HTTP status code, HTTP response headers (array of strings) */ public function deleteBlockedDomainWithHttpInfo($domain) { $returnType = ''; $request = $this->deleteBlockedDomainRequest($domain); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } return [null, $statusCode, $response->getHeaders()]; } catch (ApiException $e) { switch ($e->getCode()) { case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation deleteBlockedDomainAsync * * Unblock an existing domain from the list of blocked domains * * @param string $domain The name of the domain to be deleted (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function deleteBlockedDomainAsync($domain) { return $this->deleteBlockedDomainAsyncWithHttpInfo($domain) ->then( function ($response) { return $response[0]; } ); } /** * Operation deleteBlockedDomainAsyncWithHttpInfo * * Unblock an existing domain from the list of blocked domains * * @param string $domain The name of the domain to be deleted (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function deleteBlockedDomainAsyncWithHttpInfo($domain) { $returnType = ''; $request = $this->deleteBlockedDomainRequest($domain); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { return [null, $response->getStatusCode(), $response->getHeaders()]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'deleteBlockedDomain' * * @param string $domain The name of the domain to be deleted (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function deleteBlockedDomainRequest($domain) { // verify the required parameter 'domain' is set if ($domain === null || (is_array($domain) && count($domain) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $domain when calling deleteBlockedDomain' ); } $resourcePath = '/smtp/blockedDomains/{domain}'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // path params if ($domain !== null) { $resourcePath = str_replace( '{' . 'domain' . '}', ObjectSerializer::toPathValue($domain), $resourcePath ); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation deleteHardbounces * * Delete hardbounces * * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return void */ public function deleteHardbounces($deleteHardbounces = null) { $this->deleteHardbouncesWithHttpInfo($deleteHardbounces); } /** * Operation deleteHardbouncesWithHttpInfo * * Delete hardbounces * * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of null, HTTP status code, HTTP response headers (array of strings) */ public function deleteHardbouncesWithHttpInfo($deleteHardbounces = null) { $returnType = ''; $request = $this->deleteHardbouncesRequest($deleteHardbounces); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } return [null, $statusCode, $response->getHeaders()]; } catch (ApiException $e) { switch ($e->getCode()) { case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation deleteHardbouncesAsync * * Delete hardbounces * * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function deleteHardbouncesAsync($deleteHardbounces = null) { return $this->deleteHardbouncesAsyncWithHttpInfo($deleteHardbounces) ->then( function ($response) { return $response[0]; } ); } /** * Operation deleteHardbouncesAsyncWithHttpInfo * * Delete hardbounces * * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function deleteHardbouncesAsyncWithHttpInfo($deleteHardbounces = null) { $returnType = ''; $request = $this->deleteHardbouncesRequest($deleteHardbounces); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { return [null, $response->getStatusCode(), $response->getHeaders()]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'deleteHardbounces' * * @param \SendinBlue\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function deleteHardbouncesRequest($deleteHardbounces = null) { $resourcePath = '/smtp/deleteHardbounces'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // body params $_tempBody = null; if (isset($deleteHardbounces)) { $_tempBody = $deleteHardbounces; } if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation deleteSmtpTemplate * * Delete an inactive email template * * @param int $templateId id of the template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return void */ public function deleteSmtpTemplate($templateId) { $this->deleteSmtpTemplateWithHttpInfo($templateId); } /** * Operation deleteSmtpTemplateWithHttpInfo * * Delete an inactive email template * * @param int $templateId id of the template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of null, HTTP status code, HTTP response headers (array of strings) */ public function deleteSmtpTemplateWithHttpInfo($templateId) { $returnType = ''; $request = $this->deleteSmtpTemplateRequest($templateId); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } return [null, $statusCode, $response->getHeaders()]; } catch (ApiException $e) { switch ($e->getCode()) { case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 404: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation deleteSmtpTemplateAsync * * Delete an inactive email template * * @param int $templateId id of the template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function deleteSmtpTemplateAsync($templateId) { return $this->deleteSmtpTemplateAsyncWithHttpInfo($templateId) ->then( function ($response) { return $response[0]; } ); } /** * Operation deleteSmtpTemplateAsyncWithHttpInfo * * Delete an inactive email template * * @param int $templateId id of the template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function deleteSmtpTemplateAsyncWithHttpInfo($templateId) { $returnType = ''; $request = $this->deleteSmtpTemplateRequest($templateId); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { return [null, $response->getStatusCode(), $response->getHeaders()]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'deleteSmtpTemplate' * * @param int $templateId id of the template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function deleteSmtpTemplateRequest($templateId) { // verify the required parameter 'templateId' is set if ($templateId === null || (is_array($templateId) && count($templateId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $templateId when calling deleteSmtpTemplate' ); } $resourcePath = '/smtp/templates/{templateId}'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // path params if ($templateId !== null) { $resourcePath = str_replace( '{' . 'templateId' . '}', ObjectSerializer::toPathValue($templateId), $resourcePath ); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation getAggregatedSmtpReport * * Get your transactional email activity aggregated over a period of time * * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetAggregatedReport */ public function getAggregatedSmtpReport($startDate = null, $endDate = null, $days = null, $tag = null) { list($response) = $this->getAggregatedSmtpReportWithHttpInfo($startDate, $endDate, $days, $tag); return $response; } /** * Operation getAggregatedSmtpReportWithHttpInfo * * Get your transactional email activity aggregated over a period of time * * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetAggregatedReport, HTTP status code, HTTP response headers (array of strings) */ public function getAggregatedSmtpReportWithHttpInfo($startDate = null, $endDate = null, $days = null, $tag = null) { $returnType = '\SendinBlue\Client\Model\GetAggregatedReport'; $request = $this->getAggregatedSmtpReportRequest($startDate, $endDate, $days, $tag); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\GetAggregatedReport', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation getAggregatedSmtpReportAsync * * Get your transactional email activity aggregated over a period of time * * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getAggregatedSmtpReportAsync($startDate = null, $endDate = null, $days = null, $tag = null) { return $this->getAggregatedSmtpReportAsyncWithHttpInfo($startDate, $endDate, $days, $tag) ->then( function ($response) { return $response[0]; } ); } /** * Operation getAggregatedSmtpReportAsyncWithHttpInfo * * Get your transactional email activity aggregated over a period of time * * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getAggregatedSmtpReportAsyncWithHttpInfo($startDate = null, $endDate = null, $days = null, $tag = null) { $returnType = '\SendinBlue\Client\Model\GetAggregatedReport'; $request = $this->getAggregatedSmtpReportRequest($startDate, $endDate, $days, $tag); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'getAggregatedSmtpReport' * * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function getAggregatedSmtpReportRequest($startDate = null, $endDate = null, $days = null, $tag = null) { $resourcePath = '/smtp/statistics/aggregatedReport'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // query params if ($startDate !== null) { $queryParams['startDate'] = ObjectSerializer::toQueryValue($startDate); } // query params if ($endDate !== null) { $queryParams['endDate'] = ObjectSerializer::toQueryValue($endDate); } // query params if ($days !== null) { $queryParams['days'] = ObjectSerializer::toQueryValue($days); } // query params if ($tag !== null) { $queryParams['tag'] = ObjectSerializer::toQueryValue($tag); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation getBlockedDomains * * Get the list of blocked domains * * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetBlockedDomains */ public function getBlockedDomains() { list($response) = $this->getBlockedDomainsWithHttpInfo(); return $response; } /** * Operation getBlockedDomainsWithHttpInfo * * Get the list of blocked domains * * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetBlockedDomains, HTTP status code, HTTP response headers (array of strings) */ public function getBlockedDomainsWithHttpInfo() { $returnType = '\SendinBlue\Client\Model\GetBlockedDomains'; $request = $this->getBlockedDomainsRequest(); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\GetBlockedDomains', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation getBlockedDomainsAsync * * Get the list of blocked domains * * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getBlockedDomainsAsync() { return $this->getBlockedDomainsAsyncWithHttpInfo() ->then( function ($response) { return $response[0]; } ); } /** * Operation getBlockedDomainsAsyncWithHttpInfo * * Get the list of blocked domains * * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getBlockedDomainsAsyncWithHttpInfo() { $returnType = '\SendinBlue\Client\Model\GetBlockedDomains'; $request = $this->getBlockedDomainsRequest(); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'getBlockedDomains' * * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function getBlockedDomainsRequest() { $resourcePath = '/smtp/blockedDomains'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation getEmailEventReport * * Get all your transactional email activity (unaggregated events) * * @param int $limit Number limitation for the result returned (optional, default to 50) * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $email Filter the report for a specific email addresses (optional) * @param string $event Filter the report for a specific event type (optional) * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) * @param string $messageId Filter on a specific message id (optional) * @param int $templateId Filter on a specific template id (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetEmailEventReport */ public function getEmailEventReport($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null, $sort = 'desc') { list($response) = $this->getEmailEventReportWithHttpInfo($limit, $offset, $startDate, $endDate, $days, $email, $event, $tags, $messageId, $templateId, $sort); return $response; } /** * Operation getEmailEventReportWithHttpInfo * * Get all your transactional email activity (unaggregated events) * * @param int $limit Number limitation for the result returned (optional, default to 50) * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $email Filter the report for a specific email addresses (optional) * @param string $event Filter the report for a specific event type (optional) * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) * @param string $messageId Filter on a specific message id (optional) * @param int $templateId Filter on a specific template id (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetEmailEventReport, HTTP status code, HTTP response headers (array of strings) */ public function getEmailEventReportWithHttpInfo($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null, $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetEmailEventReport'; $request = $this->getEmailEventReportRequest($limit, $offset, $startDate, $endDate, $days, $email, $event, $tags, $messageId, $templateId, $sort); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\GetEmailEventReport', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation getEmailEventReportAsync * * Get all your transactional email activity (unaggregated events) * * @param int $limit Number limitation for the result returned (optional, default to 50) * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $email Filter the report for a specific email addresses (optional) * @param string $event Filter the report for a specific event type (optional) * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) * @param string $messageId Filter on a specific message id (optional) * @param int $templateId Filter on a specific template id (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getEmailEventReportAsync($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null, $sort = 'desc') { return $this->getEmailEventReportAsyncWithHttpInfo($limit, $offset, $startDate, $endDate, $days, $email, $event, $tags, $messageId, $templateId, $sort) ->then( function ($response) { return $response[0]; } ); } /** * Operation getEmailEventReportAsyncWithHttpInfo * * Get all your transactional email activity (unaggregated events) * * @param int $limit Number limitation for the result returned (optional, default to 50) * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $email Filter the report for a specific email addresses (optional) * @param string $event Filter the report for a specific event type (optional) * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) * @param string $messageId Filter on a specific message id (optional) * @param int $templateId Filter on a specific template id (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getEmailEventReportAsyncWithHttpInfo($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null, $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetEmailEventReport'; $request = $this->getEmailEventReportRequest($limit, $offset, $startDate, $endDate, $days, $email, $event, $tags, $messageId, $templateId, $sort); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'getEmailEventReport' * * @param int $limit Number limitation for the result returned (optional, default to 50) * @param int $offset Beginning point in the list to retrieve from. (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $email Filter the report for a specific email addresses (optional) * @param string $event Filter the report for a specific event type (optional) * @param string $tags Filter the report for tags (serialized and urlencoded array) (optional) * @param string $messageId Filter on a specific message id (optional) * @param int $templateId Filter on a specific template id (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function getEmailEventReportRequest($limit = '50', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null, $sort = 'desc') { if ($limit !== null && $limit > 100) { throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getEmailEventReport, must be smaller than or equal to 100.'); } $resourcePath = '/smtp/statistics/events'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // query params if ($limit !== null) { $queryParams['limit'] = ObjectSerializer::toQueryValue($limit); } // query params if ($offset !== null) { $queryParams['offset'] = ObjectSerializer::toQueryValue($offset); } // query params if ($startDate !== null) { $queryParams['startDate'] = ObjectSerializer::toQueryValue($startDate); } // query params if ($endDate !== null) { $queryParams['endDate'] = ObjectSerializer::toQueryValue($endDate); } // query params if ($days !== null) { $queryParams['days'] = ObjectSerializer::toQueryValue($days); } // query params if ($email !== null) { $queryParams['email'] = ObjectSerializer::toQueryValue($email); } // query params if ($event !== null) { $queryParams['event'] = ObjectSerializer::toQueryValue($event); } // query params if ($tags !== null) { $queryParams['tags'] = ObjectSerializer::toQueryValue($tags); } // query params if ($messageId !== null) { $queryParams['messageId'] = ObjectSerializer::toQueryValue($messageId); } // query params if ($templateId !== null) { $queryParams['templateId'] = ObjectSerializer::toQueryValue($templateId); } // query params if ($sort !== null) { $queryParams['sort'] = ObjectSerializer::toQueryValue($sort); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation getSmtpReport * * Get your transactional email activity aggregated per day * * @param int $limit Number of documents returned per page (optional, default to 10) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetReports */ public function getSmtpReport($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null, $sort = 'desc') { list($response) = $this->getSmtpReportWithHttpInfo($limit, $offset, $startDate, $endDate, $days, $tag, $sort); return $response; } /** * Operation getSmtpReportWithHttpInfo * * Get your transactional email activity aggregated per day * * @param int $limit Number of documents returned per page (optional, default to 10) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetReports, HTTP status code, HTTP response headers (array of strings) */ public function getSmtpReportWithHttpInfo($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null, $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetReports'; $request = $this->getSmtpReportRequest($limit, $offset, $startDate, $endDate, $days, $tag, $sort); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\GetReports', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation getSmtpReportAsync * * Get your transactional email activity aggregated per day * * @param int $limit Number of documents returned per page (optional, default to 10) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getSmtpReportAsync($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null, $sort = 'desc') { return $this->getSmtpReportAsyncWithHttpInfo($limit, $offset, $startDate, $endDate, $days, $tag, $sort) ->then( function ($response) { return $response[0]; } ); } /** * Operation getSmtpReportAsyncWithHttpInfo * * Get your transactional email activity aggregated per day * * @param int $limit Number of documents returned per page (optional, default to 10) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getSmtpReportAsyncWithHttpInfo($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null, $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetReports'; $request = $this->getSmtpReportRequest($limit, $offset, $startDate, $endDate, $days, $tag, $sort); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'getSmtpReport' * * @param int $limit Number of documents returned per page (optional, default to 10) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string $startDate Mandatory if endDate is used. Starting date of the report (YYYY-MM-DD) (optional) * @param string $endDate Mandatory if startDate is used. Ending date of the report (YYYY-MM-DD) (optional) * @param int $days Number of days in the past including today (positive integer). Not compatible with 'startDate' and 'endDate' (optional) * @param string $tag Tag of the emails (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function getSmtpReportRequest($limit = '10', $offset = '0', $startDate = null, $endDate = null, $days = null, $tag = null, $sort = 'desc') { if ($limit !== null && $limit > 30) { throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getSmtpReport, must be smaller than or equal to 30.'); } $resourcePath = '/smtp/statistics/reports'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // query params if ($limit !== null) { $queryParams['limit'] = ObjectSerializer::toQueryValue($limit); } // query params if ($offset !== null) { $queryParams['offset'] = ObjectSerializer::toQueryValue($offset); } // query params if ($startDate !== null) { $queryParams['startDate'] = ObjectSerializer::toQueryValue($startDate); } // query params if ($endDate !== null) { $queryParams['endDate'] = ObjectSerializer::toQueryValue($endDate); } // query params if ($days !== null) { $queryParams['days'] = ObjectSerializer::toQueryValue($days); } // query params if ($tag !== null) { $queryParams['tag'] = ObjectSerializer::toQueryValue($tag); } // query params if ($sort !== null) { $queryParams['sort'] = ObjectSerializer::toQueryValue($sort); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation getSmtpTemplate * * Returns the template information * * @param int $templateId id of the template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetSmtpTemplateOverview */ public function getSmtpTemplate($templateId) { list($response) = $this->getSmtpTemplateWithHttpInfo($templateId); return $response; } /** * Operation getSmtpTemplateWithHttpInfo * * Returns the template information * * @param int $templateId id of the template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetSmtpTemplateOverview, HTTP status code, HTTP response headers (array of strings) */ public function getSmtpTemplateWithHttpInfo($templateId) { $returnType = '\SendinBlue\Client\Model\GetSmtpTemplateOverview'; $request = $this->getSmtpTemplateRequest($templateId); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\GetSmtpTemplateOverview', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 404: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation getSmtpTemplateAsync * * Returns the template information * * @param int $templateId id of the template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getSmtpTemplateAsync($templateId) { return $this->getSmtpTemplateAsyncWithHttpInfo($templateId) ->then( function ($response) { return $response[0]; } ); } /** * Operation getSmtpTemplateAsyncWithHttpInfo * * Returns the template information * * @param int $templateId id of the template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getSmtpTemplateAsyncWithHttpInfo($templateId) { $returnType = '\SendinBlue\Client\Model\GetSmtpTemplateOverview'; $request = $this->getSmtpTemplateRequest($templateId); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'getSmtpTemplate' * * @param int $templateId id of the template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function getSmtpTemplateRequest($templateId) { // verify the required parameter 'templateId' is set if ($templateId === null || (is_array($templateId) && count($templateId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $templateId when calling getSmtpTemplate' ); } $resourcePath = '/smtp/templates/{templateId}'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // path params if ($templateId !== null) { $resourcePath = str_replace( '{' . 'templateId' . '}', ObjectSerializer::toPathValue($templateId), $resourcePath ); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation getSmtpTemplates * * Get the list of email templates * * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document in the page (optional, default to 0) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetSmtpTemplates */ public function getSmtpTemplates($templateStatus = null, $limit = '50', $offset = '0', $sort = 'desc') { list($response) = $this->getSmtpTemplatesWithHttpInfo($templateStatus, $limit, $offset, $sort); return $response; } /** * Operation getSmtpTemplatesWithHttpInfo * * Get the list of email templates * * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document in the page (optional, default to 0) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetSmtpTemplates, HTTP status code, HTTP response headers (array of strings) */ public function getSmtpTemplatesWithHttpInfo($templateStatus = null, $limit = '50', $offset = '0', $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetSmtpTemplates'; $request = $this->getSmtpTemplatesRequest($templateStatus, $limit, $offset, $sort); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\GetSmtpTemplates', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation getSmtpTemplatesAsync * * Get the list of email templates * * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document in the page (optional, default to 0) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getSmtpTemplatesAsync($templateStatus = null, $limit = '50', $offset = '0', $sort = 'desc') { return $this->getSmtpTemplatesAsyncWithHttpInfo($templateStatus, $limit, $offset, $sort) ->then( function ($response) { return $response[0]; } ); } /** * Operation getSmtpTemplatesAsyncWithHttpInfo * * Get the list of email templates * * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document in the page (optional, default to 0) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getSmtpTemplatesAsyncWithHttpInfo($templateStatus = null, $limit = '50', $offset = '0', $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetSmtpTemplates'; $request = $this->getSmtpTemplatesRequest($templateStatus, $limit, $offset, $sort); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'getSmtpTemplates' * * @param bool $templateStatus Filter on the status of the template. Active = true, inactive = false (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document in the page (optional, default to 0) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function getSmtpTemplatesRequest($templateStatus = null, $limit = '50', $offset = '0', $sort = 'desc') { if ($limit !== null && $limit > 1000) { throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getSmtpTemplates, must be smaller than or equal to 1000.'); } $resourcePath = '/smtp/templates'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // query params if ($templateStatus !== null) { $queryParams['templateStatus'] = ObjectSerializer::toQueryValue($templateStatus); } // query params if ($limit !== null) { $queryParams['limit'] = ObjectSerializer::toQueryValue($limit); } // query params if ($offset !== null) { $queryParams['offset'] = ObjectSerializer::toQueryValue($offset); } // query params if ($sort !== null) { $queryParams['sort'] = ObjectSerializer::toQueryValue($sort); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation getTransacBlockedContacts * * Get the list of blocked or unsubscribed transactional contacts * * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetTransacBlockedContacts */ public function getTransacBlockedContacts($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null, $sort = 'desc') { list($response) = $this->getTransacBlockedContactsWithHttpInfo($startDate, $endDate, $limit, $offset, $senders, $sort); return $response; } /** * Operation getTransacBlockedContactsWithHttpInfo * * Get the list of blocked or unsubscribed transactional contacts * * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetTransacBlockedContacts, HTTP status code, HTTP response headers (array of strings) */ public function getTransacBlockedContactsWithHttpInfo($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null, $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetTransacBlockedContacts'; $request = $this->getTransacBlockedContactsRequest($startDate, $endDate, $limit, $offset, $senders, $sort); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\GetTransacBlockedContacts', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation getTransacBlockedContactsAsync * * Get the list of blocked or unsubscribed transactional contacts * * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getTransacBlockedContactsAsync($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null, $sort = 'desc') { return $this->getTransacBlockedContactsAsyncWithHttpInfo($startDate, $endDate, $limit, $offset, $senders, $sort) ->then( function ($response) { return $response[0]; } ); } /** * Operation getTransacBlockedContactsAsyncWithHttpInfo * * Get the list of blocked or unsubscribed transactional contacts * * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getTransacBlockedContactsAsyncWithHttpInfo($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null, $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetTransacBlockedContacts'; $request = $this->getTransacBlockedContactsRequest($startDate, $endDate, $limit, $offset, $senders, $sort); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'getTransacBlockedContacts' * * @param string $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts (optional) * @param string $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts (optional) * @param int $limit Number of documents returned per page (optional, default to 50) * @param int $offset Index of the first document on the page (optional, default to 0) * @param string[] $senders Comma separated list of emails of the senders from which contacts are blocked or unsubscribed (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function getTransacBlockedContactsRequest($startDate = null, $endDate = null, $limit = '50', $offset = '0', $senders = null, $sort = 'desc') { if ($limit !== null && $limit > 100) { throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getTransacBlockedContacts, must be smaller than or equal to 100.'); } $resourcePath = '/smtp/blockedContacts'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // query params if ($startDate !== null) { $queryParams['startDate'] = ObjectSerializer::toQueryValue($startDate); } // query params if ($endDate !== null) { $queryParams['endDate'] = ObjectSerializer::toQueryValue($endDate); } // query params if ($limit !== null) { $queryParams['limit'] = ObjectSerializer::toQueryValue($limit); } // query params if ($offset !== null) { $queryParams['offset'] = ObjectSerializer::toQueryValue($offset); } // query params if (is_array($senders)) { $queryParams['senders'] = $senders; } else if ($senders !== null) { $queryParams['senders'] = ObjectSerializer::toQueryValue($senders); } // query params if ($sort !== null) { $queryParams['sort'] = ObjectSerializer::toQueryValue($sort); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation getTransacEmailContent * * Get the personalized content of a sent transactional email * * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetTransacEmailContent */ public function getTransacEmailContent($uuid) { list($response) = $this->getTransacEmailContentWithHttpInfo($uuid); return $response; } /** * Operation getTransacEmailContentWithHttpInfo * * Get the personalized content of a sent transactional email * * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetTransacEmailContent, HTTP status code, HTTP response headers (array of strings) */ public function getTransacEmailContentWithHttpInfo($uuid) { $returnType = '\SendinBlue\Client\Model\GetTransacEmailContent'; $request = $this->getTransacEmailContentRequest($uuid); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\GetTransacEmailContent', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation getTransacEmailContentAsync * * Get the personalized content of a sent transactional email * * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getTransacEmailContentAsync($uuid) { return $this->getTransacEmailContentAsyncWithHttpInfo($uuid) ->then( function ($response) { return $response[0]; } ); } /** * Operation getTransacEmailContentAsyncWithHttpInfo * * Get the personalized content of a sent transactional email * * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getTransacEmailContentAsyncWithHttpInfo($uuid) { $returnType = '\SendinBlue\Client\Model\GetTransacEmailContent'; $request = $this->getTransacEmailContentRequest($uuid); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'getTransacEmailContent' * * @param string $uuid Unique id of the transactional email that has been sent to a particular contact (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function getTransacEmailContentRequest($uuid) { // verify the required parameter 'uuid' is set if ($uuid === null || (is_array($uuid) && count($uuid) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $uuid when calling getTransacEmailContent' ); } $resourcePath = '/smtp/emails/{uuid}'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // path params if ($uuid !== null) { $resourcePath = str_replace( '{' . 'uuid' . '}', ObjectSerializer::toPathValue($uuid), $resourcePath ); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation getTransacEmailsList * * Get the list of transactional emails on the basis of allowed filters * * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\GetTransacEmailsList */ public function getTransacEmailsList($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null, $sort = 'desc') { list($response) = $this->getTransacEmailsListWithHttpInfo($email, $templateId, $messageId, $startDate, $endDate, $sort); return $response; } /** * Operation getTransacEmailsListWithHttpInfo * * Get the list of transactional emails on the basis of allowed filters * * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\GetTransacEmailsList, HTTP status code, HTTP response headers (array of strings) */ public function getTransacEmailsListWithHttpInfo($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null, $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetTransacEmailsList'; $request = $this->getTransacEmailsListRequest($email, $templateId, $messageId, $startDate, $endDate, $sort); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 200: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\GetTransacEmailsList', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation getTransacEmailsListAsync * * Get the list of transactional emails on the basis of allowed filters * * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getTransacEmailsListAsync($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null, $sort = 'desc') { return $this->getTransacEmailsListAsyncWithHttpInfo($email, $templateId, $messageId, $startDate, $endDate, $sort) ->then( function ($response) { return $response[0]; } ); } /** * Operation getTransacEmailsListAsyncWithHttpInfo * * Get the list of transactional emails on the basis of allowed filters * * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function getTransacEmailsListAsyncWithHttpInfo($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null, $sort = 'desc') { $returnType = '\SendinBlue\Client\Model\GetTransacEmailsList'; $request = $this->getTransacEmailsListRequest($email, $templateId, $messageId, $startDate, $endDate, $sort); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'getTransacEmailsList' * * @param string $email Mandatory if templateId and messageId are not passed in query filters. Email address to which transactional email has been sent. (optional) * @param int $templateId Mandatory if email and messageId are not passed in query filters. Id of the template that was used to compose transactional email. (optional) * @param string $messageId Mandatory if templateId and email are not passed in query filters. Message ID of the transactional email sent. (optional) * @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param \DateTime $endDate Mandatory if startDate is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month. (optional) * @param string $sort Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed (optional, default to desc) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function getTransacEmailsListRequest($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null, $sort = 'desc') { $resourcePath = '/smtp/emails'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // query params if ($email !== null) { $queryParams['email'] = ObjectSerializer::toQueryValue($email); } // query params if ($templateId !== null) { $queryParams['templateId'] = ObjectSerializer::toQueryValue($templateId); } // query params if ($messageId !== null) { $queryParams['messageId'] = ObjectSerializer::toQueryValue($messageId); } // query params if ($startDate !== null) { $queryParams['startDate'] = ObjectSerializer::toQueryValue($startDate); } // query params if ($endDate !== null) { $queryParams['endDate'] = ObjectSerializer::toQueryValue($endDate); } // query params if ($sort !== null) { $queryParams['sort'] = ObjectSerializer::toQueryValue($sort); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'GET', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation sendTemplate * * Send a template * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendEmail $sendEmail sendEmail (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\SendTemplateEmail */ public function sendTemplate($templateId, $sendEmail) { list($response) = $this->sendTemplateWithHttpInfo($templateId, $sendEmail); return $response; } /** * Operation sendTemplateWithHttpInfo * * Send a template * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendEmail $sendEmail (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\SendTemplateEmail, HTTP status code, HTTP response headers (array of strings) */ public function sendTemplateWithHttpInfo($templateId, $sendEmail) { $returnType = '\SendinBlue\Client\Model\SendTemplateEmail'; $request = $this->sendTemplateRequest($templateId, $sendEmail); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 201: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\SendTemplateEmail', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\PostSendFailed', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 404: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation sendTemplateAsync * * Send a template * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendEmail $sendEmail (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function sendTemplateAsync($templateId, $sendEmail) { return $this->sendTemplateAsyncWithHttpInfo($templateId, $sendEmail) ->then( function ($response) { return $response[0]; } ); } /** * Operation sendTemplateAsyncWithHttpInfo * * Send a template * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendEmail $sendEmail (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function sendTemplateAsyncWithHttpInfo($templateId, $sendEmail) { $returnType = '\SendinBlue\Client\Model\SendTemplateEmail'; $request = $this->sendTemplateRequest($templateId, $sendEmail); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'sendTemplate' * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendEmail $sendEmail (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function sendTemplateRequest($templateId, $sendEmail) { // verify the required parameter 'templateId' is set if ($templateId === null || (is_array($templateId) && count($templateId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $templateId when calling sendTemplate' ); } // verify the required parameter 'sendEmail' is set if ($sendEmail === null || (is_array($sendEmail) && count($sendEmail) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $sendEmail when calling sendTemplate' ); } $resourcePath = '/smtp/templates/{templateId}/send'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // path params if ($templateId !== null) { $resourcePath = str_replace( '{' . 'templateId' . '}', ObjectSerializer::toPathValue($templateId), $resourcePath ); } // body params $_tempBody = null; if (isset($sendEmail)) { $_tempBody = $sendEmail; } if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation sendTestTemplate * * Send a template to your test list * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail sendTestEmail (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return void */ public function sendTestTemplate($templateId, $sendTestEmail) { $this->sendTestTemplateWithHttpInfo($templateId, $sendTestEmail); } /** * Operation sendTestTemplateWithHttpInfo * * Send a template to your test list * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of null, HTTP status code, HTTP response headers (array of strings) */ public function sendTestTemplateWithHttpInfo($templateId, $sendTestEmail) { $returnType = ''; $request = $this->sendTestTemplateRequest($templateId, $sendTestEmail); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } return [null, $statusCode, $response->getHeaders()]; } catch (ApiException $e) { switch ($e->getCode()) { case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\PostSendFailed', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 404: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation sendTestTemplateAsync * * Send a template to your test list * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function sendTestTemplateAsync($templateId, $sendTestEmail) { return $this->sendTestTemplateAsyncWithHttpInfo($templateId, $sendTestEmail) ->then( function ($response) { return $response[0]; } ); } /** * Operation sendTestTemplateAsyncWithHttpInfo * * Send a template to your test list * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function sendTestTemplateAsyncWithHttpInfo($templateId, $sendTestEmail) { $returnType = ''; $request = $this->sendTestTemplateRequest($templateId, $sendTestEmail); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { return [null, $response->getStatusCode(), $response->getHeaders()]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'sendTestTemplate' * * @param int $templateId Id of the template (required) * @param \SendinBlue\Client\Model\SendTestEmail $sendTestEmail (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function sendTestTemplateRequest($templateId, $sendTestEmail) { // verify the required parameter 'templateId' is set if ($templateId === null || (is_array($templateId) && count($templateId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $templateId when calling sendTestTemplate' ); } // verify the required parameter 'sendTestEmail' is set if ($sendTestEmail === null || (is_array($sendTestEmail) && count($sendTestEmail) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $sendTestEmail when calling sendTestTemplate' ); } $resourcePath = '/smtp/templates/{templateId}/sendTest'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // path params if ($templateId !== null) { $resourcePath = str_replace( '{' . 'templateId' . '}', ObjectSerializer::toPathValue($templateId), $resourcePath ); } // body params $_tempBody = null; if (isset($sendTestEmail)) { $_tempBody = $sendTestEmail; } if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation sendTransacEmail * * Send a transactional email * * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return \SendinBlue\Client\Model\CreateSmtpEmail */ public function sendTransacEmail($sendSmtpEmail) { list($response) = $this->sendTransacEmailWithHttpInfo($sendSmtpEmail); return $response; } /** * Operation sendTransacEmailWithHttpInfo * * Send a transactional email * * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of \SendinBlue\Client\Model\CreateSmtpEmail, HTTP status code, HTTP response headers (array of strings) */ public function sendTransacEmailWithHttpInfo($sendSmtpEmail) { $returnType = '\SendinBlue\Client\Model\CreateSmtpEmail'; $request = $this->sendTransacEmailRequest($sendSmtpEmail); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; } catch (ApiException $e) { switch ($e->getCode()) { case 201: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\CreateSmtpEmail', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation sendTransacEmailAsync * * Send a transactional email * * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function sendTransacEmailAsync($sendSmtpEmail) { return $this->sendTransacEmailAsyncWithHttpInfo($sendSmtpEmail) ->then( function ($response) { return $response[0]; } ); } /** * Operation sendTransacEmailAsyncWithHttpInfo * * Send a transactional email * * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function sendTransacEmailAsyncWithHttpInfo($sendSmtpEmail) { $returnType = '\SendinBlue\Client\Model\CreateSmtpEmail'; $request = $this->sendTransacEmailRequest($sendSmtpEmail); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { $responseBody = $response->getBody(); if ($returnType === '\SplFileObject') { $content = $responseBody; //stream goes to serializer } else { $content = $responseBody->getContents(); if ($returnType !== 'string') { $content = json_decode($content); } } return [ ObjectSerializer::deserialize($content, $returnType, []), $response->getStatusCode(), $response->getHeaders() ]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'sendTransacEmail' * * @param \SendinBlue\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function sendTransacEmailRequest($sendSmtpEmail) { // verify the required parameter 'sendSmtpEmail' is set if ($sendSmtpEmail === null || (is_array($sendSmtpEmail) && count($sendSmtpEmail) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $sendSmtpEmail when calling sendTransacEmail' ); } $resourcePath = '/smtp/email'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // body params $_tempBody = null; if (isset($sendSmtpEmail)) { $_tempBody = $sendSmtpEmail; } if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'POST', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation smtpBlockedContactsEmailDelete * * Unblock or resubscribe a transactional contact * * @param string $email contact email (urlencoded) to unblock. (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return void */ public function smtpBlockedContactsEmailDelete($email) { $this->smtpBlockedContactsEmailDeleteWithHttpInfo($email); } /** * Operation smtpBlockedContactsEmailDeleteWithHttpInfo * * Unblock or resubscribe a transactional contact * * @param string $email contact email (urlencoded) to unblock. (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of null, HTTP status code, HTTP response headers (array of strings) */ public function smtpBlockedContactsEmailDeleteWithHttpInfo($email) { $returnType = ''; $request = $this->smtpBlockedContactsEmailDeleteRequest($email); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } return [null, $statusCode, $response->getHeaders()]; } catch (ApiException $e) { switch ($e->getCode()) { case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 404: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation smtpBlockedContactsEmailDeleteAsync * * Unblock or resubscribe a transactional contact * * @param string $email contact email (urlencoded) to unblock. (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function smtpBlockedContactsEmailDeleteAsync($email) { return $this->smtpBlockedContactsEmailDeleteAsyncWithHttpInfo($email) ->then( function ($response) { return $response[0]; } ); } /** * Operation smtpBlockedContactsEmailDeleteAsyncWithHttpInfo * * Unblock or resubscribe a transactional contact * * @param string $email contact email (urlencoded) to unblock. (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function smtpBlockedContactsEmailDeleteAsyncWithHttpInfo($email) { $returnType = ''; $request = $this->smtpBlockedContactsEmailDeleteRequest($email); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { return [null, $response->getStatusCode(), $response->getHeaders()]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'smtpBlockedContactsEmailDelete' * * @param string $email contact email (urlencoded) to unblock. (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function smtpBlockedContactsEmailDeleteRequest($email) { // verify the required parameter 'email' is set if ($email === null || (is_array($email) && count($email) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $email when calling smtpBlockedContactsEmailDelete' ); } $resourcePath = '/smtp/blockedContacts/{email}'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // path params if ($email !== null) { $resourcePath = str_replace( '{' . 'email' . '}', ObjectSerializer::toPathValue($email), $resourcePath ); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation smtpLogMessageIdDelete * * Delete an SMTP transactional log * * @param string $messageId MessageId of the transactional log to delete (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return void */ public function smtpLogMessageIdDelete($messageId) { $this->smtpLogMessageIdDeleteWithHttpInfo($messageId); } /** * Operation smtpLogMessageIdDeleteWithHttpInfo * * Delete an SMTP transactional log * * @param string $messageId MessageId of the transactional log to delete (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of null, HTTP status code, HTTP response headers (array of strings) */ public function smtpLogMessageIdDeleteWithHttpInfo($messageId) { $returnType = ''; $request = $this->smtpLogMessageIdDeleteRequest($messageId); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } return [null, $statusCode, $response->getHeaders()]; } catch (ApiException $e) { switch ($e->getCode()) { case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 404: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation smtpLogMessageIdDeleteAsync * * Delete an SMTP transactional log * * @param string $messageId MessageId of the transactional log to delete (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function smtpLogMessageIdDeleteAsync($messageId) { return $this->smtpLogMessageIdDeleteAsyncWithHttpInfo($messageId) ->then( function ($response) { return $response[0]; } ); } /** * Operation smtpLogMessageIdDeleteAsyncWithHttpInfo * * Delete an SMTP transactional log * * @param string $messageId MessageId of the transactional log to delete (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function smtpLogMessageIdDeleteAsyncWithHttpInfo($messageId) { $returnType = ''; $request = $this->smtpLogMessageIdDeleteRequest($messageId); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { return [null, $response->getStatusCode(), $response->getHeaders()]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'smtpLogMessageIdDelete' * * @param string $messageId MessageId of the transactional log to delete (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function smtpLogMessageIdDeleteRequest($messageId) { // verify the required parameter 'messageId' is set if ($messageId === null || (is_array($messageId) && count($messageId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $messageId when calling smtpLogMessageIdDelete' ); } $resourcePath = '/smtp/log/{messageId}'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // path params if ($messageId !== null) { $resourcePath = str_replace( '{' . 'messageId' . '}', ObjectSerializer::toPathValue($messageId), $resourcePath ); } // body params $_tempBody = null; if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'DELETE', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Operation updateSmtpTemplate * * Update an email template * * @param int $templateId id of the template (required) * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return void */ public function updateSmtpTemplate($templateId, $smtpTemplate) { $this->updateSmtpTemplateWithHttpInfo($templateId, $smtpTemplate); } /** * Operation updateSmtpTemplateWithHttpInfo * * Update an email template * * @param int $templateId id of the template (required) * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \SendinBlue\Client\ApiException on non-2xx response * @throws \InvalidArgumentException * @return array of null, HTTP status code, HTTP response headers (array of strings) */ public function updateSmtpTemplateWithHttpInfo($templateId, $smtpTemplate) { $returnType = ''; $request = $this->updateSmtpTemplateRequest($templateId, $smtpTemplate); try { $options = $this->createHttpClientOption(); try { $response = $this->client->send($request, $options); } catch (RequestException $e) { throw new ApiException( "[{$e->getCode()}] {$e->getMessage()}", $e->getCode(), $e->getResponse() ? $e->getResponse()->getHeaders() : null, $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null ); } $statusCode = $response->getStatusCode(); if ($statusCode < 200 || $statusCode > 299) { throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $request->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } return [null, $statusCode, $response->getHeaders()]; } catch (ApiException $e) { switch ($e->getCode()) { case 400: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; case 404: $data = ObjectSerializer::deserialize( $e->getResponseBody(), '\SendinBlue\Client\Model\ErrorModel', $e->getResponseHeaders() ); $e->setResponseObject($data); break; } throw $e; } } /** * Operation updateSmtpTemplateAsync * * Update an email template * * @param int $templateId id of the template (required) * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function updateSmtpTemplateAsync($templateId, $smtpTemplate) { return $this->updateSmtpTemplateAsyncWithHttpInfo($templateId, $smtpTemplate) ->then( function ($response) { return $response[0]; } ); } /** * Operation updateSmtpTemplateAsyncWithHttpInfo * * Update an email template * * @param int $templateId id of the template (required) * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Promise\PromiseInterface */ public function updateSmtpTemplateAsyncWithHttpInfo($templateId, $smtpTemplate) { $returnType = ''; $request = $this->updateSmtpTemplateRequest($templateId, $smtpTemplate); return $this->client ->sendAsync($request, $this->createHttpClientOption()) ->then( function ($response) use ($returnType) { return [null, $response->getStatusCode(), $response->getHeaders()]; }, function ($exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); throw new ApiException( sprintf( '[%d] Error connecting to the API (%s)', $statusCode, $exception->getRequest()->getUri() ), $statusCode, $response->getHeaders(), $response->getBody() ); } ); } /** * Create request for operation 'updateSmtpTemplate' * * @param int $templateId id of the template (required) * @param \SendinBlue\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required) * * @throws \InvalidArgumentException * @return \GuzzleHttp\Psr7\Request */ protected function updateSmtpTemplateRequest($templateId, $smtpTemplate) { // verify the required parameter 'templateId' is set if ($templateId === null || (is_array($templateId) && count($templateId) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $templateId when calling updateSmtpTemplate' ); } // verify the required parameter 'smtpTemplate' is set if ($smtpTemplate === null || (is_array($smtpTemplate) && count($smtpTemplate) === 0)) { throw new \InvalidArgumentException( 'Missing the required parameter $smtpTemplate when calling updateSmtpTemplate' ); } $resourcePath = '/smtp/templates/{templateId}'; $formParams = []; $queryParams = []; $headerParams = []; $httpBody = ''; $multipart = false; // path params if ($templateId !== null) { $resourcePath = str_replace( '{' . 'templateId' . '}', ObjectSerializer::toPathValue($templateId), $resourcePath ); } // body params $_tempBody = null; if (isset($smtpTemplate)) { $_tempBody = $smtpTemplate; } if ($multipart) { $headers = $this->headerSelector->selectHeadersForMultipart( ['application/json'] ); } else { $headers = $this->headerSelector->selectHeaders( ['application/json'], ['application/json'] ); } // for model (json/xml) if (isset($_tempBody)) { // $_tempBody is the method argument, if present $httpBody = $_tempBody; if($headers['Content-Type'] === 'application/json') { // \stdClass has no __toString(), so we should encode it manually if ($httpBody instanceof \stdClass) { $httpBody = \GuzzleHttp\json_encode($httpBody); } // array has no __toString(), so we should encode it manually if(is_array($httpBody)) { $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($httpBody)); } } } elseif (count($formParams) > 0) { if ($multipart) { $multipartContents = []; foreach ($formParams as $formParamName => $formParamValue) { $multipartContents[] = [ 'name' => $formParamName, 'contents' => $formParamValue ]; } // for HTTP post (form) $httpBody = new MultipartStream($multipartContents); } elseif ($headers['Content-Type'] === 'application/json') { $httpBody = \GuzzleHttp\json_encode($formParams); } else { // for HTTP post (form) $httpBody = \GuzzleHttp\Psr7\build_query($formParams); } } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('api-key'); if ($apiKey !== null) { $headers['api-key'] = $apiKey; } // this endpoint requires API key authentication $apiKey = $this->config->getApiKeyWithPrefix('partner-key'); if ($apiKey !== null) { $headers['partner-key'] = $apiKey; } $defaultHeaders = []; if ($this->config->getUserAgent()) { $defaultHeaders['User-Agent'] = $this->config->getUserAgent(); } $headers = array_merge( $defaultHeaders, $headerParams, $headers ); $query = \GuzzleHttp\Psr7\build_query($queryParams); return new Request( 'PUT', $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''), $headers, $httpBody ); } /** * Create http client option * * @throws \RuntimeException on file opening failure * @return array of http client options */ protected function createHttpClientOption() { $options = []; if ($this->config->getDebug()) { $options[RequestOptions::DEBUG] = fopen($this->config->getDebugFile(), 'a'); if (!$options[RequestOptions::DEBUG]) { throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile()); } } return $options; } }