Skip to content

Commit

Permalink
add flows to manage suppressions
Browse files Browse the repository at this point in the history
  • Loading branch information
Nielsvanpach committed Sep 11, 2024
1 parent 8faf1b4 commit 50399b3
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 0 deletions.
54 changes: 54 additions & 0 deletions src/Actions/ManagesSuppressions.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<?php

namespace Spatie\MailcoachSdk\Actions;

use Spatie\MailcoachSdk\Resources\Suppression;
use Spatie\MailcoachSdk\Support\PaginatedResults;

trait ManagesSuppressions
{
/**
* @param array<string, string> $filters
* @return PaginatedResults<Suppression>
*/
public function suppressions(array $filters = []): PaginatedResults
{
return PaginatedResults::make(
"suppressions{$this->buildFilterString($filters)}",
Suppression::class,
$this,
);
}

public function createSuppression(string $email): void
{
$this->createSuppressions([$email]);
}

/** @param array<int, string> $emails */
public function createSuppressions(array $emails): void
{
$payload = [];
foreach ($emails as $email) {
$payload[] = ['email' => $email];
}

$this->post("suppressions", $payload);
}

public function deleteSuppression(string $email): void
{
$this->deleteSuppressions([$email]);
}

/** @param array<int, string> $emails */
public function deleteSuppressions(array $emails): void
{
$payload = [];
foreach ($emails as $email) {
$payload[] = ['email' => $email];
}

$this->delete("suppressions", $payload);
}
}
2 changes: 2 additions & 0 deletions src/Mailcoach.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use Spatie\MailcoachSdk\Actions\ManagesCampaigns;
use Spatie\MailcoachSdk\Actions\ManagesEmailLists;
use Spatie\MailcoachSdk\Actions\ManagesSubscribers;
use Spatie\MailcoachSdk\Actions\ManagesSuppressions;
use Spatie\MailcoachSdk\Actions\ManagesTransactionalMails;

class Mailcoach
Expand All @@ -16,6 +17,7 @@ class Mailcoach
use ManagesEmailLists;
use ManagesSubscribers;
use ManagesTransactionalMails;
use ManagesSuppressions;

public function __construct(
public string $apiToken,
Expand Down
16 changes: 16 additions & 0 deletions src/Resources/Suppression.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace Spatie\MailcoachSdk\Resources;

class Suppression extends ApiResource
{
public string $uuid;

public string $email;

public string $reason;

public ?string $createdAt;

public ?string $updatedAt;
}

0 comments on commit 50399b3

Please sign in to comment.