Skip to content

Commit 8e3a9bb

Browse files
Joosep JõelehtJoosep Jõeleht
Joosep Jõeleht
authored and
Joosep Jõeleht
committed
release(1.3.2) - Added new searchApplyMessages endpoint support
1 parent 4bb13d6 commit 8e3a9bb

File tree

2 files changed

+121
-19
lines changed

2 files changed

+121
-19
lines changed

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"description": "",
44
"type": "library",
55
"license": "EUPL-1.1",
6-
"version": "1.3.1",
6+
"version": "1.3.2",
77
"require": {
88
"php": "^7.4|^8.0|^8.1",
99
"ext-curl": "*",

src/Service/MessageService.php

+120-18
Original file line numberDiff line numberDiff line change
@@ -2,77 +2,179 @@
22

33
namespace Zone\Wildduck\Service;
44

5+
use Zone\Wildduck\Collection;
6+
use Zone\Wildduck\Collection2;
7+
use Zone\Wildduck\Exception\ApiConnectionException;
8+
use Zone\Wildduck\Exception\AuthenticationFailedException;
9+
use Zone\Wildduck\Exception\InvalidAccessTokenException;
10+
use Zone\Wildduck\Exception\RequestFailedException;
11+
use Zone\Wildduck\Exception\ValidationException;
12+
use Zone\Wildduck\Message;
13+
use Zone\Wildduck\WildduckObject;
14+
515
class MessageService extends AbstractService
616
{
717

818
public function delete(string $user, string $mailbox, string $message, $params = null, $opts = null)
919
{
10-
return $this->request('delete', $this->buildPath('/users/%s/mailboxes/%s/messages/%s', $user, $mailbox, $message), $params, $opts);
20+
return $this->request(
21+
'delete',
22+
$this->buildPath('/users/%s/mailboxes/%s/messages/%s', $user, $mailbox, $message),
23+
$params,
24+
$opts
25+
);
1126
}
1227

1328
public function deleteOutbound(string $user, string $queueId, $params = null, $opts = null)
1429
{
1530
return $this->request('delete', $this->buildPath('/users/%s/outbound/%s', $user, $queueId), $params, $opts);
1631
}
1732

18-
public function downloadAttachment(string $user, string $mailbox, string $message, string $attachment, $params = null, $opts = null)
19-
{
33+
public function downloadAttachment(
34+
string $user,
35+
string $mailbox,
36+
string $message,
37+
string $attachment,
38+
$params = null,
39+
$opts = null
40+
) {
2041
// $opts['raw'] = true;
21-
return $this->request('get', $this->buildPath('/users/%s/mailboxes/%s/messages/%s/attachments/%s', $user, $mailbox, $message, $attachment), $params, $opts);
42+
return $this->request(
43+
'get',
44+
$this->buildPath(
45+
'/users/%s/mailboxes/%s/messages/%s/attachments/%s',
46+
$user,
47+
$mailbox,
48+
$message,
49+
$attachment
50+
),
51+
$params,
52+
$opts
53+
);
2254
}
2355

2456
public function forward(string $user, string $mailbox, string $message, $params = null, $opts = null)
2557
{
26-
return $this->request('post', $this->buildPath('/users/%s/mailboxes/%s/messages/%s/forward', $user, $mailbox, $message), $params, $opts);
58+
return $this->request(
59+
'post',
60+
$this->buildPath('/users/%s/mailboxes/%s/messages/%s/forward', $user, $mailbox, $message),
61+
$params,
62+
$opts
63+
);
2764
}
2865

2966
public function events(string $user, string $mailbox, string $message, $params = null, $opts = null)
3067
{
31-
return $this->request('get', $this->buildPath('/users/%s/mailboxes/%s/messages/%s/events', $user, $mailbox, $message), $params, $opts);
68+
return $this->request(
69+
'get',
70+
$this->buildPath('/users/%s/mailboxes/%s/messages/%s/events', $user, $mailbox, $message),
71+
$params,
72+
$opts
73+
);
3274
}
3375

3476
public function source(string $user, string $mailbox, string $message, $params = null, $opts = null)
3577
{
3678
$opts['raw'] = true;
37-
return $this->request('get', $this->buildPath('/users/%s/mailboxes/%s/messages/%s/message.eml', $user, $mailbox, $message), $params, $opts);
79+
return $this->request(
80+
'get',
81+
$this->buildPath(
82+
'/users/%s/mailboxes/%s/messages/%s/message.eml',
83+
$user,
84+
$mailbox,
85+
$message
86+
),
87+
$params,
88+
$opts
89+
);
3890
}
3991

4092
/**
41-
* @return \Zone\Wildduck\Collection|\Zone\Wildduck\Message[]
93+
* @return Collection|Message[]
4294
*/
4395
public function all(string $user, string $mailbox, $params = null, $opts = null)
4496
{
45-
return $this->requestCollection('get', $this->buildPath('/users/%s/mailboxes/%s/messages', $user, $mailbox), $params, $opts);
97+
return $this->requestCollection(
98+
'get',
99+
$this->buildPath('/users/%s/mailboxes/%s/messages', $user, $mailbox),
100+
$params,
101+
$opts
102+
);
46103
}
47104

48105
/**
49-
* @return \Zone\Wildduck\Message
106+
* @return Message
50107
*/
51108
public function get(string $user, string $mailbox, string $message, $params = null, $opts = null)
52109
{
53-
return $this->request('get', $this->buildPath('/users/%s/mailboxes/%s/messages/%s', $user, $mailbox, $message), $params, $opts);
110+
return $this->request(
111+
'get',
112+
$this->buildPath('/users/%s/mailboxes/%s/messages/%s', $user, $mailbox, $message),
113+
$params,
114+
$opts
115+
);
116+
}
117+
118+
public function search(string $user, $params = null, $opts = null): Collection2
119+
{
120+
return $this->requestCollection('get', $this->buildPath('/users/%s/search', $user), $params, $opts);
54121
}
55122

56123
/**
57-
* @return \Zone\Wildduck\Collection|\Zone\Wildduck\Message[]
124+
* @throws RequestFailedException
125+
* @throws InvalidAccessTokenException
126+
* @throws AuthenticationFailedException
127+
* @throws ApiConnectionException
128+
* @throws ValidationException
129+
*
130+
* @link https://docs.wildduck.email/api/#operation/searchApplyMessages
58131
*/
59-
public function search(string $user, $params = null, $opts = null)
132+
public function searchApplyMessages(string $user, $params = null, $opts = null): WildduckObject
60133
{
61-
return $this->requestCollection('get', $this->buildPath('/users/%s/search', $user), $params, $opts);
134+
return $this->request('post', $this->buildPath('/users/%s/search', $user), $params, $opts);
62135
}
63136

64-
public function submitDraft(string $user, string $mailbox, string $message, $params = null, $opts = null)
137+
/**
138+
* @throws RequestFailedException
139+
* @throws InvalidAccessTokenException
140+
* @throws AuthenticationFailedException
141+
* @throws ApiConnectionException
142+
* @throws ValidationException
143+
*/
144+
public function submitDraft(string $user, string $mailbox, string $message, $params = null, $opts = null): WildduckObject
65145
{
66-
return $this->request('post', $this->buildPath('/users/%s/mailboxes/%s/messages/%s/submit', $user, $mailbox, $message), $params, $opts);
146+
return $this->request(
147+
'post',
148+
$this->buildPath('/users/%s/mailboxes/%s/messages/%s/submit', $user, $mailbox, $message),
149+
$params,
150+
$opts
151+
);
67152
}
68153

154+
/**
155+
* @throws RequestFailedException
156+
* @throws InvalidAccessTokenException
157+
* @throws AuthenticationFailedException
158+
* @throws ApiConnectionException
159+
* @throws ValidationException
160+
*/
69161
public function update(string $user, string $mailbox, $params = null, $opts = null)
70162
{
71-
return $this->request('put', $this->buildPath('/users/%s/mailboxes/%s/messages', $user, $mailbox), $params, $opts);
163+
return $this->request(
164+
'put',
165+
$this->buildPath('/users/%s/mailboxes/%s/messages', $user, $mailbox),
166+
$params,
167+
$opts
168+
);
72169
}
73170

74171
public function upload(string $user, string $mailbox, $params = null, $opts = null)
75172
{
76-
return $this->request('post', $this->buildPath('/users/%s/mailboxes/%s/messages', $user, $mailbox), $params, $opts);
173+
return $this->request(
174+
'post',
175+
$this->buildPath('/users/%s/mailboxes/%s/messages', $user, $mailbox),
176+
$params,
177+
$opts
178+
);
77179
}
78180
}

0 commit comments

Comments
 (0)