forked from spatie/mailcoach-sdk-php
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathManagesEmailLists.php
More file actions
68 lines (53 loc) · 1.85 KB
/
ManagesEmailLists.php
File metadata and controls
68 lines (53 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
namespace Spatie\MailcoachSdk\Actions;
use Spatie\MailcoachSdk\Resources\EmailList;
use Spatie\MailcoachSdk\Resources\Tag;
use Spatie\MailcoachSdk\Support\PaginatedResults;
trait ManagesEmailLists
{
/**
* @param array<string, string> $filters
* @return PaginatedResults<EmailList>
*/
public function emailLists(array $filters = []): PaginatedResults
{
return PaginatedResults::make(
"email-lists{$this->buildFilterString($filters)}",
EmailList::class,
$this,
);
}
public function createEmailList(array $data): EmailList
{
$attributes = $this->post('email-lists', $data)['data'];
return new EmailList($attributes, $this);
}
public function emailList(string $uuid): EmailList
{
$attributes = $this->get("email-lists/{$uuid}")['data'];
return new EmailList($attributes, $this);
}
public function updateEmailList(string $uuid, array $data): EmailList
{
$attributes = $this->put("email-lists/{$uuid}", $data)['data'];
return new EmailList($attributes, $this);
}
public function deleteEmailList(string $uuid): void
{
$this->delete("email-lists/{$uuid}");
}
public function addTagToEmailList(string $uuid, array $data): Tag
{
$attributes = $this->post("email-lists/{$uuid}/tags", $data)['data'];
return new Tag($attributes, $this);
}
public function updateTagOnEmailList(string $emailListUuid, string $tagUuid, array $data): Tag
{
$attributes = $this->put("email-lists/{$emailListUuid}/tags/{$tagUuid}", $data)['data'];
return new Tag($attributes, $this);
}
public function deleteTagFromEmailList(string $emailListUuid, string $tagUuid): void
{
$this->delete("email-lists/{$emailListUuid}/tags/{$tagUuid}");
}
}