diff --git a/src/DataTypes/ApiEmailTriggeredCampaign.php b/src/DataTypes/ApiEmailTriggeredCampaign.php new file mode 100644 index 0000000..ee082be --- /dev/null +++ b/src/DataTypes/ApiEmailTriggeredCampaign.php @@ -0,0 +1,35 @@ + + * + */ + + +namespace DotMailer\Api\DataTypes; + +/** + * Class ApiEmailTriggeredCampaign + * + * @property StringList ToAddresses + * @property StringList CCAddresses + * @property StringList BCCAddresses + * @property XsInt CampaignId + * @property ApiPersonalizationValueList PersonalizationValues + */ +final class ApiEmailTriggeredCampaign extends JsonObject implements IApiEmailTriggeredCampaign +{ + + protected function getProperties() + { + return array( + 'ToAddresses' => 'StringList', + 'CCAddresses' => 'StringList', + 'BCCAddresses' => 'StringList', + 'CampaignId' => 'XsInt', + 'PersonalizationValues' => 'ApiPersonalizationValueList', + ); + } + +} diff --git a/src/DataTypes/ApiPersonalizationValue.php b/src/DataTypes/ApiPersonalizationValue.php new file mode 100644 index 0000000..c478b78 --- /dev/null +++ b/src/DataTypes/ApiPersonalizationValue.php @@ -0,0 +1,23 @@ + + * + */ + + +namespace DotMailer\Api\DataTypes; + +final class ApiPersonalizationValue extends JsonObject +{ + + protected function getProperties() + { + return array( + 'Name' => 'XsString', + 'Value' => 'XsString', + ); + } + +} diff --git a/src/DataTypes/ApiPersonalizationValueList.php b/src/DataTypes/ApiPersonalizationValueList.php new file mode 100644 index 0000000..61797e3 --- /dev/null +++ b/src/DataTypes/ApiPersonalizationValueList.php @@ -0,0 +1,20 @@ + + * + */ + + +namespace DotMailer\Api\DataTypes; + +final class ApiPersonalizationValueList extends JsonArray +{ + + protected function getDataClass() + { + return 'ApiPersonalizationValue'; + } + +} diff --git a/src/DataTypes/IApiEmailTriggeredCampaign.php b/src/DataTypes/IApiEmailTriggeredCampaign.php new file mode 100644 index 0000000..618bc1f --- /dev/null +++ b/src/DataTypes/IApiEmailTriggeredCampaign.php @@ -0,0 +1,22 @@ + + * + */ + +namespace DotMailer\Api\DataTypes; + +/** + * Interface IApiEmailTriggeredCampaign + * + * @property StringList ToAddresses + * @property StringList CCAddresses + * @property StringList BCCAddresses + * @property XsInt CampaignId + * @property ApiPersonalizationValueList PersonalizationValues + */ +interface IApiEmailTriggeredCampaign extends IDataType +{ +} diff --git a/src/DataTypes/StringList.php b/src/DataTypes/StringList.php new file mode 100644 index 0000000..b90954d --- /dev/null +++ b/src/DataTypes/StringList.php @@ -0,0 +1,20 @@ + + * + */ + + +namespace DotMailer\Api\DataTypes; + +final class StringList extends JsonArray +{ + + protected function getDataClass() + { + return 'XsString'; + } + +} \ No newline at end of file diff --git a/src/Resources/IResources.php b/src/Resources/IResources.php index 63febeb..0dc8f43 100644 --- a/src/Resources/IResources.php +++ b/src/Resources/IResources.php @@ -59,6 +59,7 @@ use DotMailer\Api\DataTypes\ApiTransactionalDataImportReport; use DotMailer\Api\DataTypes\ApiTransactionalDataList; use DotMailer\Api\DataTypes\Guid; +use DotMailer\Api\DataTypes\IApiEmailTriggeredCampaign; use DotMailer\Api\DataTypes\IApiTemplate; use DotMailer\Api\DataTypes\Int32List; use DotMailer\Api\DataTypes\XsBoolean; @@ -1024,4 +1025,10 @@ public function UpdateTemplate(IApiTemplate $apiTemplate); */ public function GetTemplates($select = 1000, $skip = 0); + /** + * Send a triggered email campaign. + * + * @param IApiEmailTriggeredCampaign $apiEmailTriggeredCampaign + */ + public function PostEmailTriggeredCampaign(IApiEmailTriggeredCampaign $apiEmailTriggeredCampaign); } diff --git a/src/Resources/Resources.php b/src/Resources/Resources.php index b025293..c0f0462 100644 --- a/src/Resources/Resources.php +++ b/src/Resources/Resources.php @@ -59,6 +59,7 @@ use DotMailer\Api\DataTypes\ApiTransactionalDataImportReport; use DotMailer\Api\DataTypes\ApiTransactionalDataList; use DotMailer\Api\DataTypes\Guid; +use DotMailer\Api\DataTypes\IApiEmailTriggeredCampaign; use DotMailer\Api\DataTypes\IApiTemplate; use DotMailer\Api\DataTypes\XsDateTime; use DotMailer\Api\DataTypes\XsInt; @@ -719,4 +720,13 @@ public function GetTemplates($select = 1000, $skip = 0) $url = sprintf("templates?select=%s&skip=%s", $select, $skip); return new ApiTemplateList($this->execute($url)); } + + /* + * ========== Email ========== + */ + + public function PostEmailTriggeredCampaign(IApiEmailTriggeredCampaign $apiEmailTriggeredCampaign) + { + $this->execute('email/triggered-campaign', 'POST', $apiEmailTriggeredCampaign->toJson()); + } }