@@ -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