Skip to content

Commit f5b169a

Browse files
committed
Add support for message direction
1 parent 480f784 commit f5b169a

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

mailosaur/operations/messages_operations.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def __init__(self, session, base_url, handle_http_error):
1414
self.base_url = base_url
1515
self.handle_http_error = handle_http_error
1616

17-
def get(self, server, criteria, timeout=10000, received_after=(datetime.today() - timedelta(hours=1))):
17+
def get(self, server, criteria, timeout=10000, received_after=(datetime.today() - timedelta(hours=1)), dir=None):
1818
"""Retrieve a message using search criteria.
1919
2020
Returns as soon as a message matching the specified search criteria is
@@ -28,6 +28,9 @@ def get(self, server, criteria, timeout=10000, received_after=(datetime.today()
2828
:type timeout: int
2929
:param received_after: Limits results to only messages received after this date/time.
3030
:type received_after: datetime
31+
:param dir: Optionally limits results based on the direction (`Sent` or `Received`),
32+
with the default being `Received`.
33+
:type dir: str
3134
:return: Message
3235
:rtype: ~mailosaur.models.Message
3336
:raises:
@@ -39,7 +42,7 @@ def get(self, server, criteria, timeout=10000, received_after=(datetime.today()
3942
"Must provide a valid Server ID.", "invalid_request")
4043

4144
result = self.search(server, criteria, 0, 1,
42-
timeout, received_after, True)
45+
timeout, received_after, True, dir)
4346
return self.get_by_id(result.items[0].id)
4447

4548
def get_by_id(self, id):
@@ -86,7 +89,7 @@ def delete(self, id):
8689
self.handle_http_error(response)
8790
return
8891

89-
def list(self, server, page=None, items_per_page=None, received_after=None):
92+
def list(self, server, page=None, items_per_page=None, received_after=None, dir=None):
9093
"""List all messages.
9194
9295
Returns a list of your messages in summary form. The summaries are
@@ -103,6 +106,9 @@ def list(self, server, page=None, items_per_page=None, received_after=None):
103106
:type items_per_page: int
104107
:param received_after: Limits results to only messages received after this date/time.
105108
:type received_after: datetime
109+
:param dir: Optionally limits results based on the direction (`Sent` or `Received`),
110+
with the default being `Received`.
111+
:type dir: str
106112
:return: MessageListResult
107113
:rtype: ~mailosaur.models.MessageListResult
108114
:raises:
@@ -114,7 +120,7 @@ def list(self, server, page=None, items_per_page=None, received_after=None):
114120
received_after = received_after.astimezone().replace(microsecond=0).isoformat()
115121

116122
params = {'server': server, 'page': page,
117-
'itemsPerPage': items_per_page, 'receivedAfter': received_after}
123+
'itemsPerPage': items_per_page, 'receivedAfter': received_after, 'dir': dir}
118124
response = self.session.get(url, params=params)
119125

120126
if response.status_code not in [200]:
@@ -147,7 +153,7 @@ def delete_all(self, server):
147153
self.handle_http_error(response)
148154
return
149155

150-
def search(self, server, criteria, page=None, items_per_page=None, timeout=None, received_after=None, error_on_timeout=True):
156+
def search(self, server, criteria, page=None, items_per_page=None, timeout=None, received_after=None, error_on_timeout=True, dir=None):
151157
"""Search for messages.
152158
153159
Returns a list of messages matching the specified search criteria, in
@@ -171,6 +177,9 @@ def search(self, server, criteria, page=None, items_per_page=None, timeout=None,
171177
:param error_on_timeout: When set to false, an error will not be throw if timeout
172178
is reached (default: true).
173179
:type error_on_timeout: bool
180+
:param dir: Optionally limits results based on the direction (`Sent` or `Received`),
181+
with the default being `Received`.
182+
:type dir: str
174183
:return: MessageListResult
175184
:rtype: ~mailosaur.models.MessageListResult
176185
:raises:
@@ -182,7 +191,7 @@ def search(self, server, criteria, page=None, items_per_page=None, timeout=None,
182191
received_after = received_after.astimezone().replace(microsecond=0).isoformat()
183192

184193
params = {'server': server, 'page': page,
185-
'itemsPerPage': items_per_page, 'receivedAfter': received_after}
194+
'itemsPerPage': items_per_page, 'receivedAfter': received_after, 'dir': dir}
186195

187196
poll_count = 0
188197
start_time = datetime.today()

0 commit comments

Comments
 (0)