94 lines
2.2 KiB
PHP
94 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Lib\Helpers;
|
|
|
|
use Mailjet\Resources;
|
|
|
|
class MailjetHelper
|
|
{
|
|
/**
|
|
* Get campaigns sent
|
|
*
|
|
* @param \Carbon\Carbon|null $fromTimestamp
|
|
* @return array
|
|
*/
|
|
public static function getCampaigns(\Carbon\Carbon|null $fromTimestamp = null): array
|
|
{
|
|
$filters = [
|
|
'Limit' => 1000
|
|
];
|
|
|
|
if (!is_null($fromTimestamp)) {
|
|
$filters = array_merge(
|
|
$filters,
|
|
[
|
|
'FromTS' => $fromTimestamp->toRfc3339String()
|
|
]
|
|
);
|
|
}
|
|
|
|
$response = app('mailjetClient')->get(Resources::$Campaign, [
|
|
'filters' => $filters
|
|
]);
|
|
|
|
if ($response->success()) {
|
|
return $response->getData();
|
|
} else {
|
|
return [];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get unsubscribed contacts for a given contact list
|
|
*
|
|
* @param integer $contactListId
|
|
* @param \Carbon\Carbon|null $lastActivity
|
|
* @return array
|
|
*/
|
|
public static function getUnsubscribedContacts(int $contactListId, \Carbon\Carbon|null $lastActivity = null): array
|
|
{
|
|
$filters = [
|
|
'ContactsList' => $contactListId,
|
|
'Unsub' => true,
|
|
'Limit' => 1000,
|
|
];
|
|
|
|
if (!is_null($lastActivity)) {
|
|
$filters = array_merge(
|
|
$filters,
|
|
[
|
|
'LastActivityAt' => $lastActivity->toRfc3339String()
|
|
]
|
|
);
|
|
}
|
|
|
|
$response = app('mailjetClient')->get(Resources::$Listrecipient, [
|
|
'filters' => $filters
|
|
]);
|
|
|
|
if ($response->success()) {
|
|
return $response->getData();
|
|
} else {
|
|
return [];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get contact for a given contact id
|
|
*
|
|
* @param integer $contactId
|
|
* @return array
|
|
*/
|
|
public static function getContact(int $contactId): array
|
|
{
|
|
$response = app('mailjetClient')->get(Resources::$Contact, [
|
|
'id' => $contactId
|
|
]);
|
|
|
|
if ($response->success()) {
|
|
return $response->getData();
|
|
} else {
|
|
return [];
|
|
}
|
|
}
|
|
}
|