File "TransactionalEmailsApi.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/vendor/getbrevo/brevo-php/lib/Api/TransactionalEmailsApi.php
File size: 251.8 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* TransactionalEmailsApi
* PHP version 5
*
* @category Class
* @package Brevo\Client
* @author Swagger Codegen team
* @link https://github.com/swagger-api/swagger-codegen
*/
/**
* Brevo API
*
* Brevo 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/brevo **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@brevo.com
* Generated by: https://github.com/swagger-api/swagger-codegen.git
* Swagger Codegen version: 2.4.29
*/
/**
* 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 Brevo\Client\Api;
use GuzzleHttp\Client;
use GuzzleHttp\ClientInterface;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Psr7\MultipartStream;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\RequestOptions;
use Brevo\Client\ApiException;
use Brevo\Client\Configuration;
use Brevo\Client\HeaderSelector;
use Brevo\Client\ObjectSerializer;
/**
* TransactionalEmailsApi Class Doc Comment
*
* @category Class
* @package Brevo\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 \Brevo\Client\Model\BlockDomain $blockDomain blockDomain (required)
*
* @throws \Brevo\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 \Brevo\Client\Model\BlockDomain $blockDomain (required)
*
* @throws \Brevo\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(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
}
throw $e;
}
}
/**
* Operation blockNewDomainAsync
*
* Add a new domain to the list of blocked domains
*
* @param \Brevo\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 \Brevo\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 \Brevo\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\Query::build($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\Query::build($queryParams);
return new Request(
'POST',
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
$headers,
$httpBody
);
}
/**
* Operation createSmtpTemplate
*
* Create an email template
*
* @param \Brevo\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\Client\Model\CreateModel
*/
public function createSmtpTemplate($smtpTemplate)
{
list($response) = $this->createSmtpTemplateWithHttpInfo($smtpTemplate);
return $response;
}
/**
* Operation createSmtpTemplateWithHttpInfo
*
* Create an email template
*
* @param \Brevo\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\CreateModel, HTTP status code, HTTP response headers (array of strings)
*/
public function createSmtpTemplateWithHttpInfo($smtpTemplate)
{
$returnType = '\Brevo\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(),
'\Brevo\Client\Model\CreateModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
}
throw $e;
}
}
/**
* Operation createSmtpTemplateAsync
*
* Create an email template
*
* @param \Brevo\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 \Brevo\Client\Model\CreateSmtpTemplate $smtpTemplate values to update in transactional email template (required)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function createSmtpTemplateAsyncWithHttpInfo($smtpTemplate)
{
$returnType = '\Brevo\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 \Brevo\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\Query::build($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\Query::build($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 \Brevo\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 \Brevo\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(),
'\Brevo\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\Query::build($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\Query::build($queryParams);
return new Request(
'DELETE',
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
$headers,
$httpBody
);
}
/**
* Operation deleteHardbounces
*
* Delete hardbounces
*
* @param \Brevo\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return void
*/
public function deleteHardbounces($deleteHardbounces = null)
{
$this->deleteHardbouncesWithHttpInfo($deleteHardbounces);
}
/**
* Operation deleteHardbouncesWithHttpInfo
*
* Delete hardbounces
*
* @param \Brevo\Client\Model\DeleteHardbounces $deleteHardbounces values to delete hardbounces (optional)
*
* @throws \Brevo\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(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
}
throw $e;
}
}
/**
* Operation deleteHardbouncesAsync
*
* Delete hardbounces
*
* @param \Brevo\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 \Brevo\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 \Brevo\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\Query::build($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\Query::build($queryParams);
return new Request(
'POST',
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
$headers,
$httpBody
);
}
/**
* Operation deleteScheduledEmailById
*
* Delete scheduled emails by batchId or messageId
*
* @param string $identifier The `batchId` of scheduled emails batch (Should be a valid UUIDv4) or the `messageId` of scheduled email. (required)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return void
*/
public function deleteScheduledEmailById($identifier)
{
$this->deleteScheduledEmailByIdWithHttpInfo($identifier);
}
/**
* Operation deleteScheduledEmailByIdWithHttpInfo
*
* Delete scheduled emails by batchId or messageId
*
* @param string $identifier The `batchId` of scheduled emails batch (Should be a valid UUIDv4) or the `messageId` of scheduled email. (required)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of null, HTTP status code, HTTP response headers (array of strings)
*/
public function deleteScheduledEmailByIdWithHttpInfo($identifier)
{
$returnType = '';
$request = $this->deleteScheduledEmailByIdRequest($identifier);
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(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 404:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
}
throw $e;
}
}
/**
* Operation deleteScheduledEmailByIdAsync
*
* Delete scheduled emails by batchId or messageId
*
* @param string $identifier The `batchId` of scheduled emails batch (Should be a valid UUIDv4) or the `messageId` of scheduled email. (required)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function deleteScheduledEmailByIdAsync($identifier)
{
return $this->deleteScheduledEmailByIdAsyncWithHttpInfo($identifier)
->then(
function ($response) {
return $response[0];
}
);
}
/**
* Operation deleteScheduledEmailByIdAsyncWithHttpInfo
*
* Delete scheduled emails by batchId or messageId
*
* @param string $identifier The `batchId` of scheduled emails batch (Should be a valid UUIDv4) or the `messageId` of scheduled email. (required)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function deleteScheduledEmailByIdAsyncWithHttpInfo($identifier)
{
$returnType = '';
$request = $this->deleteScheduledEmailByIdRequest($identifier);
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 'deleteScheduledEmailById'
*
* @param string $identifier The `batchId` of scheduled emails batch (Should be a valid UUIDv4) or the `messageId` of scheduled email. (required)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Psr7\Request
*/
protected function deleteScheduledEmailByIdRequest($identifier)
{
// verify the required parameter 'identifier' is set
if ($identifier === null || (is_array($identifier) && count($identifier) === 0)) {
throw new \InvalidArgumentException(
'Missing the required parameter $identifier when calling deleteScheduledEmailById'
);
}
$resourcePath = '/smtp/email/{identifier}';
$formParams = [];
$queryParams = [];
$headerParams = [];
$httpBody = '';
$multipart = false;
// path params
if ($identifier !== null) {
$resourcePath = str_replace(
'{' . 'identifier' . '}',
ObjectSerializer::toPathValue($identifier),
$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\Query::build($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\Query::build($queryParams);
return new Request(
'DELETE',
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
$headers,
$httpBody
);
}
/**
* Operation deleteSmtpTemplate
*
* Delete an inactive email template
*
* @param int $templateId id of the template (required)
*
* @throws \Brevo\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 \Brevo\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 404:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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\Query::build($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\Query::build($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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\GetAggregatedReport, HTTP status code, HTTP response headers (array of strings)
*/
public function getAggregatedSmtpReportWithHttpInfo($startDate = null, $endDate = null, $days = null, $tag = null)
{
$returnType = '\Brevo\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(),
'\Brevo\Client\Model\GetAggregatedReport',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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 = '\Brevo\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\Query::build($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\Query::build($queryParams);
return new Request(
'GET',
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
$headers,
$httpBody
);
}
/**
* Operation getBlockedDomains
*
* Get the list of blocked domains
*
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\Client\Model\GetBlockedDomains
*/
public function getBlockedDomains()
{
list($response) = $this->getBlockedDomainsWithHttpInfo();
return $response;
}
/**
* Operation getBlockedDomainsWithHttpInfo
*
* Get the list of blocked domains
*
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\GetBlockedDomains, HTTP status code, HTTP response headers (array of strings)
*/
public function getBlockedDomainsWithHttpInfo()
{
$returnType = '\Brevo\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(),
'\Brevo\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 = '\Brevo\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\Query::build($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\Query::build($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 2500)
* @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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\Client\Model\GetEmailEventReport
*/
public function getEmailEventReport($limit = '2500', $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 2500)
* @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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\GetEmailEventReport, HTTP status code, HTTP response headers (array of strings)
*/
public function getEmailEventReportWithHttpInfo($limit = '2500', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null, $sort = 'desc')
{
$returnType = '\Brevo\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(),
'\Brevo\Client\Model\GetEmailEventReport',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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 2500)
* @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 = '2500', $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 2500)
* @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 = '2500', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null, $sort = 'desc')
{
$returnType = '\Brevo\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 2500)
* @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 = '2500', $offset = '0', $startDate = null, $endDate = null, $days = null, $email = null, $event = null, $tags = null, $messageId = null, $templateId = null, $sort = 'desc')
{
if ($limit !== null && $limit > 5000) {
throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getEmailEventReport, must be smaller than or equal to 5000.');
}
if ($limit !== null && $limit < 0) {
throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getEmailEventReport, must be bigger than or equal to 0.');
}
$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\Query::build($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\Query::build($queryParams);
return new Request(
'GET',
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
$headers,
$httpBody
);
}
/**
* Operation getScheduledEmailByBatchId
*
* Fetch scheduled emails by batchId
*
* @param string $batchId The batchId of scheduled emails batch (Should be a valid UUIDv4) (required)
* @param \DateTime $startDate Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
* @param string $status Filter the records by `status` of the scheduled email batch or message. (optional)
* @param int $limit Number of documents returned per page (optional, default to 100)
* @param int $offset Index of the first document on the page (optional, default to 0)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\Client\Model\GetScheduledEmailByBatchId
*/
public function getScheduledEmailByBatchId($batchId, $startDate = null, $endDate = null, $sort = 'desc', $status = null, $limit = '100', $offset = '0')
{
list($response) = $this->getScheduledEmailByBatchIdWithHttpInfo($batchId, $startDate, $endDate, $sort, $status, $limit, $offset);
return $response;
}
/**
* Operation getScheduledEmailByBatchIdWithHttpInfo
*
* Fetch scheduled emails by batchId
*
* @param string $batchId The batchId of scheduled emails batch (Should be a valid UUIDv4) (required)
* @param \DateTime $startDate Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
* @param string $status Filter the records by `status` of the scheduled email batch or message. (optional)
* @param int $limit Number of documents returned per page (optional, default to 100)
* @param int $offset Index of the first document on the page (optional, default to 0)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\GetScheduledEmailByBatchId, HTTP status code, HTTP response headers (array of strings)
*/
public function getScheduledEmailByBatchIdWithHttpInfo($batchId, $startDate = null, $endDate = null, $sort = 'desc', $status = null, $limit = '100', $offset = '0')
{
$returnType = '\Brevo\Client\Model\GetScheduledEmailByBatchId';
$request = $this->getScheduledEmailByBatchIdRequest($batchId, $startDate, $endDate, $sort, $status, $limit, $offset);
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(),
'\Brevo\Client\Model\GetScheduledEmailByBatchId',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 404:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
}
throw $e;
}
}
/**
* Operation getScheduledEmailByBatchIdAsync
*
* Fetch scheduled emails by batchId
*
* @param string $batchId The batchId of scheduled emails batch (Should be a valid UUIDv4) (required)
* @param \DateTime $startDate Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
* @param string $status Filter the records by `status` of the scheduled email batch or message. (optional)
* @param int $limit Number of documents returned per page (optional, default to 100)
* @param int $offset Index of the first document on the page (optional, default to 0)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function getScheduledEmailByBatchIdAsync($batchId, $startDate = null, $endDate = null, $sort = 'desc', $status = null, $limit = '100', $offset = '0')
{
return $this->getScheduledEmailByBatchIdAsyncWithHttpInfo($batchId, $startDate, $endDate, $sort, $status, $limit, $offset)
->then(
function ($response) {
return $response[0];
}
);
}
/**
* Operation getScheduledEmailByBatchIdAsyncWithHttpInfo
*
* Fetch scheduled emails by batchId
*
* @param string $batchId The batchId of scheduled emails batch (Should be a valid UUIDv4) (required)
* @param \DateTime $startDate Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
* @param string $status Filter the records by `status` of the scheduled email batch or message. (optional)
* @param int $limit Number of documents returned per page (optional, default to 100)
* @param int $offset Index of the first document on the page (optional, default to 0)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function getScheduledEmailByBatchIdAsyncWithHttpInfo($batchId, $startDate = null, $endDate = null, $sort = 'desc', $status = null, $limit = '100', $offset = '0')
{
$returnType = '\Brevo\Client\Model\GetScheduledEmailByBatchId';
$request = $this->getScheduledEmailByBatchIdRequest($batchId, $startDate, $endDate, $sort, $status, $limit, $offset);
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 'getScheduledEmailByBatchId'
*
* @param string $batchId The batchId of scheduled emails batch (Should be a valid UUIDv4) (required)
* @param \DateTime $startDate Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
* @param string $status Filter the records by `status` of the scheduled email batch or message. (optional)
* @param int $limit Number of documents returned per page (optional, default to 100)
* @param int $offset Index of the first document on the page (optional, default to 0)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Psr7\Request
*/
protected function getScheduledEmailByBatchIdRequest($batchId, $startDate = null, $endDate = null, $sort = 'desc', $status = null, $limit = '100', $offset = '0')
{
// verify the required parameter 'batchId' is set
if ($batchId === null || (is_array($batchId) && count($batchId) === 0)) {
throw new \InvalidArgumentException(
'Missing the required parameter $batchId when calling getScheduledEmailByBatchId'
);
}
if ($limit !== null && $limit > 500) {
throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getScheduledEmailByBatchId, must be smaller than or equal to 500.');
}
if ($limit !== null && $limit < 0) {
throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getScheduledEmailByBatchId, must be bigger than or equal to 0.');
}
$resourcePath = '/smtp/emailStatus/{batchId}';
$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 ($sort !== null) {
$queryParams['sort'] = ObjectSerializer::toQueryValue($sort);
}
// query params
if ($status !== null) {
$queryParams['status'] = ObjectSerializer::toQueryValue($status);
}
// query params
if ($limit !== null) {
$queryParams['limit'] = ObjectSerializer::toQueryValue($limit);
}
// query params
if ($offset !== null) {
$queryParams['offset'] = ObjectSerializer::toQueryValue($offset);
}
// path params
if ($batchId !== null) {
$resourcePath = str_replace(
'{' . 'batchId' . '}',
ObjectSerializer::toPathValue($batchId),
$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\Query::build($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\Query::build($queryParams);
return new Request(
'GET',
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
$headers,
$httpBody
);
}
/**
* Operation getScheduledEmailByMessageId
*
* Fetch scheduled email by messageId
*
* @param string $messageId The messageId of scheduled email (required)
* @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\Client\Model\GetScheduledEmailByMessageId
*/
public function getScheduledEmailByMessageId($messageId, $startDate = null, $endDate = null)
{
list($response) = $this->getScheduledEmailByMessageIdWithHttpInfo($messageId, $startDate, $endDate);
return $response;
}
/**
* Operation getScheduledEmailByMessageIdWithHttpInfo
*
* Fetch scheduled email by messageId
*
* @param string $messageId The messageId of scheduled email (required)
* @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\GetScheduledEmailByMessageId, HTTP status code, HTTP response headers (array of strings)
*/
public function getScheduledEmailByMessageIdWithHttpInfo($messageId, $startDate = null, $endDate = null)
{
$returnType = '\Brevo\Client\Model\GetScheduledEmailByMessageId';
$request = $this->getScheduledEmailByMessageIdRequest($messageId, $startDate, $endDate);
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(),
'\Brevo\Client\Model\GetScheduledEmailByMessageId',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 404:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
}
throw $e;
}
}
/**
* Operation getScheduledEmailByMessageIdAsync
*
* Fetch scheduled email by messageId
*
* @param string $messageId The messageId of scheduled email (required)
* @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function getScheduledEmailByMessageIdAsync($messageId, $startDate = null, $endDate = null)
{
return $this->getScheduledEmailByMessageIdAsyncWithHttpInfo($messageId, $startDate, $endDate)
->then(
function ($response) {
return $response[0];
}
);
}
/**
* Operation getScheduledEmailByMessageIdAsyncWithHttpInfo
*
* Fetch scheduled email by messageId
*
* @param string $messageId The messageId of scheduled email (required)
* @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function getScheduledEmailByMessageIdAsyncWithHttpInfo($messageId, $startDate = null, $endDate = null)
{
$returnType = '\Brevo\Client\Model\GetScheduledEmailByMessageId';
$request = $this->getScheduledEmailByMessageIdRequest($messageId, $startDate, $endDate);
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 'getScheduledEmailByMessageId'
*
* @param string $messageId The messageId of scheduled email (required)
* @param \DateTime $startDate Mandatory if endDate is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date. (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)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Psr7\Request
*/
protected function getScheduledEmailByMessageIdRequest($messageId, $startDate = null, $endDate = null)
{
// 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 getScheduledEmailByMessageId'
);
}
$resourcePath = '/smtp/emailStatus/{messageId}';
$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);
}
// 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\Query::build($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\Query::build($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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\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 = '\Brevo\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(),
'\Brevo\Client\Model\GetReports',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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 = '\Brevo\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.');
}
if ($limit !== null && $limit < 0) {
throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getSmtpReport, must be bigger than or equal to 0.');
}
$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\Query::build($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\Query::build($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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\GetSmtpTemplateOverview, HTTP status code, HTTP response headers (array of strings)
*/
public function getSmtpTemplateWithHttpInfo($templateId)
{
$returnType = '\Brevo\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(),
'\Brevo\Client\Model\GetSmtpTemplateOverview',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 404:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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 = '\Brevo\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\Query::build($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\Query::build($queryParams);
return new Request(
'GET',
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
$headers,
$httpBody
);
}
/**
* Operation getSmtpTemplates
*
* Get the list of email templates
*
* @param string $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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\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 string $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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\GetSmtpTemplates, HTTP status code, HTTP response headers (array of strings)
*/
public function getSmtpTemplatesWithHttpInfo($templateStatus = null, $limit = '50', $offset = '0', $sort = 'desc')
{
$returnType = '\Brevo\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(),
'\Brevo\Client\Model\GetSmtpTemplates',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
}
throw $e;
}
}
/**
* Operation getSmtpTemplatesAsync
*
* Get the list of email templates
*
* @param string $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 string $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 = '\Brevo\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 string $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.');
}
if ($limit !== null && $limit < 0) {
throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getSmtpTemplates, must be bigger than or equal to 0.');
}
$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\Query::build($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\Query::build($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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\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 = '\Brevo\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(),
'\Brevo\Client\Model\GetTransacBlockedContacts',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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 = '\Brevo\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.');
}
if ($limit !== null && $limit < 0) {
throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getTransacBlockedContacts, must be bigger than or equal to 0.');
}
$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\Query::build($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\Query::build($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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\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 \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\GetTransacEmailContent, HTTP status code, HTTP response headers (array of strings)
*/
public function getTransacEmailContentWithHttpInfo($uuid)
{
$returnType = '\Brevo\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(),
'\Brevo\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 = '\Brevo\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\Query::build($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\Query::build($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 string $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 string $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)
* @param int $limit Number of documents returned per page (optional, default to 500)
* @param int $offset Index of the first document in the page (optional, default to 0)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\Client\Model\GetTransacEmailsList
*/
public function getTransacEmailsList($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null, $sort = 'desc', $limit = '500', $offset = '0')
{
list($response) = $this->getTransacEmailsListWithHttpInfo($email, $templateId, $messageId, $startDate, $endDate, $sort, $limit, $offset);
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 string $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 string $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)
* @param int $limit Number of documents returned per page (optional, default to 500)
* @param int $offset Index of the first document in the page (optional, default to 0)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\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', $limit = '500', $offset = '0')
{
$returnType = '\Brevo\Client\Model\GetTransacEmailsList';
$request = $this->getTransacEmailsListRequest($email, $templateId, $messageId, $startDate, $endDate, $sort, $limit, $offset);
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(),
'\Brevo\Client\Model\GetTransacEmailsList',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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 string $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 string $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)
* @param int $limit Number of documents returned per page (optional, default to 500)
* @param int $offset Index of the first document in the page (optional, default to 0)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function getTransacEmailsListAsync($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null, $sort = 'desc', $limit = '500', $offset = '0')
{
return $this->getTransacEmailsListAsyncWithHttpInfo($email, $templateId, $messageId, $startDate, $endDate, $sort, $limit, $offset)
->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 string $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 string $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)
* @param int $limit Number of documents returned per page (optional, default to 500)
* @param int $offset Index of the first document in the page (optional, default to 0)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function getTransacEmailsListAsyncWithHttpInfo($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null, $sort = 'desc', $limit = '500', $offset = '0')
{
$returnType = '\Brevo\Client\Model\GetTransacEmailsList';
$request = $this->getTransacEmailsListRequest($email, $templateId, $messageId, $startDate, $endDate, $sort, $limit, $offset);
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 string $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 string $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)
* @param int $limit Number of documents returned per page (optional, default to 500)
* @param int $offset Index of the first document in the page (optional, default to 0)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Psr7\Request
*/
protected function getTransacEmailsListRequest($email = null, $templateId = null, $messageId = null, $startDate = null, $endDate = null, $sort = 'desc', $limit = '500', $offset = '0')
{
if ($limit !== null && $limit > 1000) {
throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getTransacEmailsList, must be smaller than or equal to 1000.');
}
if ($limit !== null && $limit < 0) {
throw new \InvalidArgumentException('invalid value for "$limit" when calling TransactionalEmailsApi.getTransacEmailsList, must be bigger than or equal to 0.');
}
$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);
}
// query params
if ($limit !== null) {
$queryParams['limit'] = ObjectSerializer::toQueryValue($limit);
}
// query params
if ($offset !== null) {
$queryParams['offset'] = ObjectSerializer::toQueryValue($offset);
}
// 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\Query::build($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\Query::build($queryParams);
return new Request(
'GET',
$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 \Brevo\Client\Model\SendTestEmail $sendTestEmail sendTestEmail (required)
*
* @throws \Brevo\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 \Brevo\Client\Model\SendTestEmail $sendTestEmail (required)
*
* @throws \Brevo\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(),
'\Brevo\Client\Model\PostSendFailed',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 404:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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 \Brevo\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 \Brevo\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 \Brevo\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\Query::build($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\Query::build($queryParams);
return new Request(
'POST',
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
$headers,
$httpBody
);
}
/**
* Operation sendTransacEmail
*
* Send a transactional email
*
* @param \Brevo\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return \Brevo\Client\Model\CreateSmtpEmail
*/
public function sendTransacEmail($sendSmtpEmail)
{
list($response) = $this->sendTransacEmailWithHttpInfo($sendSmtpEmail);
return $response;
}
/**
* Operation sendTransacEmailWithHttpInfo
*
* Send a transactional email
*
* @param \Brevo\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required)
*
* @throws \Brevo\Client\ApiException on non-2xx response
* @throws \InvalidArgumentException
* @return array of \Brevo\Client\Model\CreateSmtpEmail, HTTP status code, HTTP response headers (array of strings)
*/
public function sendTransacEmailWithHttpInfo($sendSmtpEmail)
{
$returnType = '\Brevo\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(),
'\Brevo\Client\Model\CreateSmtpEmail',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 202:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ScheduleSmtpEmail',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
}
throw $e;
}
}
/**
* Operation sendTransacEmailAsync
*
* Send a transactional email
*
* @param \Brevo\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 \Brevo\Client\Model\SendSmtpEmail $sendSmtpEmail Values to send a transactional email (required)
*
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function sendTransacEmailAsyncWithHttpInfo($sendSmtpEmail)
{
$returnType = '\Brevo\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 \Brevo\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\Query::build($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\Query::build($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 \Brevo\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 \Brevo\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(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 404:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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\Query::build($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\Query::build($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 \Brevo\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 \Brevo\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 404:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 400:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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\Query::build($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\Query::build($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 \Brevo\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required)
*
* @throws \Brevo\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 \Brevo\Client\Model\UpdateSmtpTemplate $smtpTemplate values to update in transactional email template (required)
*
* @throws \Brevo\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(),
'\Brevo\Client\Model\ErrorModel',
$e->getResponseHeaders()
);
$e->setResponseObject($data);
break;
case 404:
$data = ObjectSerializer::deserialize(
$e->getResponseBody(),
'\Brevo\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 \Brevo\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 \Brevo\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 \Brevo\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\Query::build($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\Query::build($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;
}
}