-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
nik-sib
committed
Aug 9, 2024
1 parent
f76bdb3
commit 080d5da
Showing
8 changed files
with
1,555 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Event | ||
|
||
## Properties | ||
Name | Type | Description | Notes | ||
------------ | ------------- | ------------- | ------------- | ||
**eventName** | **string** | The name of the event that occurred. This is how you will find your event in Brevo. Limited to 255 characters, alphanumerical characters and - _ only. | | ||
**eventDate** | **string** | Timestamp of when the event occurred (e.g. \"2024-01-24T17:39:57+01:00\"). If no value is passed, the timestamp of the event creation is used. | [optional] | ||
**identifiers** | [**\Brevo\Client\Model\EventIdentifiers**](EventIdentifiers.md) | | | ||
**contactProperties** | **object** | Properties defining the state of the contact associated to this event. Useful to update contact attributes defined in your contacts database while passing the event. For example: **\"FIRSTNAME\": \"Jane\" , \"AGE\": 37** | [optional] | ||
**eventProperties** | **object** | Properties of the event. Top level properties and nested properties can be used to better segment contacts and personalise workflow conditions. The following field type are supported: string, number, boolean (true/false), date (Timestamp e.g. \"2024-01-24T17:39:57+01:00\"). Keys are limited to 255 characters, alphanumerical characters and - _ only. Size is limited to 50Kb. | [optional] | ||
|
||
[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# EventIdentifiers | ||
|
||
## Properties | ||
Name | Type | Description | Notes | ||
------------ | ------------- | ------------- | ------------- | ||
**emailId** | **string** | Email Id associated with the event | [optional] | ||
**phoneId** | **string** | SMS associated with the event | [optional] | ||
**whatsappId** | **string** | whatsapp associated with the event | [optional] | ||
**landlineNumberId** | **string** | landline_number associated with the event | [optional] | ||
**extId** | **string** | ext_id associated with the event | [optional] | ||
|
||
[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,361 @@ | ||
<?php | ||
/** | ||
* EventsApi | ||
* 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 | | 422 | Error. Unprocessable Entity | | ||
* | ||
* OpenAPI spec version: 3.0.0 | ||
* Contact: [email protected] | ||
* 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; | ||
|
||
/** | ||
* EventsApi Class Doc Comment | ||
* | ||
* @category Class | ||
* @package Brevo\Client | ||
* @author Swagger Codegen team | ||
* @link https://github.com/swagger-api/swagger-codegen | ||
*/ | ||
class EventsApi | ||
{ | ||
/** | ||
* @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 createEvent | ||
* | ||
* Create an event | ||
* | ||
* @param \Brevo\Client\Model\Event $event event (required) | ||
* | ||
* @throws \Brevo\Client\ApiException on non-2xx response | ||
* @throws \InvalidArgumentException | ||
* @return void | ||
*/ | ||
public function createEvent($event) | ||
{ | ||
$this->createEventWithHttpInfo($event); | ||
} | ||
|
||
/** | ||
* Operation createEventWithHttpInfo | ||
* | ||
* Create an event | ||
* | ||
* @param \Brevo\Client\Model\Event $event (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 createEventWithHttpInfo($event) | ||
{ | ||
$returnType = ''; | ||
$request = $this->createEventRequest($event); | ||
|
||
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 401: | ||
$data = ObjectSerializer::deserialize( | ||
$e->getResponseBody(), | ||
'\Brevo\Client\Model\ErrorModel', | ||
$e->getResponseHeaders() | ||
); | ||
$e->setResponseObject($data); | ||
break; | ||
} | ||
throw $e; | ||
} | ||
} | ||
|
||
/** | ||
* Operation createEventAsync | ||
* | ||
* Create an event | ||
* | ||
* @param \Brevo\Client\Model\Event $event (required) | ||
* | ||
* @throws \InvalidArgumentException | ||
* @return \GuzzleHttp\Promise\PromiseInterface | ||
*/ | ||
public function createEventAsync($event) | ||
{ | ||
return $this->createEventAsyncWithHttpInfo($event) | ||
->then( | ||
function ($response) { | ||
return $response[0]; | ||
} | ||
); | ||
} | ||
|
||
/** | ||
* Operation createEventAsyncWithHttpInfo | ||
* | ||
* Create an event | ||
* | ||
* @param \Brevo\Client\Model\Event $event (required) | ||
* | ||
* @throws \InvalidArgumentException | ||
* @return \GuzzleHttp\Promise\PromiseInterface | ||
*/ | ||
public function createEventAsyncWithHttpInfo($event) | ||
{ | ||
$returnType = ''; | ||
$request = $this->createEventRequest($event); | ||
|
||
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 'createEvent' | ||
* | ||
* @param \Brevo\Client\Model\Event $event (required) | ||
* | ||
* @throws \InvalidArgumentException | ||
* @return \GuzzleHttp\Psr7\Request | ||
*/ | ||
protected function createEventRequest($event) | ||
{ | ||
// verify the required parameter 'event' is set | ||
if ($event === null || (is_array($event) && count($event) === 0)) { | ||
throw new \InvalidArgumentException( | ||
'Missing the required parameter $event when calling createEvent' | ||
); | ||
} | ||
|
||
$resourcePath = '/events'; | ||
$formParams = []; | ||
$queryParams = []; | ||
$headerParams = []; | ||
$httpBody = ''; | ||
$multipart = false; | ||
|
||
|
||
|
||
// body params | ||
$_tempBody = null; | ||
if (isset($event)) { | ||
$_tempBody = $event; | ||
} | ||
|
||
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 | ||
); | ||
} | ||
|
||
/** | ||
* 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; | ||
} | ||
} |
Oops, something went wrong.