@@ -20,11 +20,34 @@ class LostOrders(Item):
2020 def get (self , ** kwargs ):
2121 """
2222 Args:
23+ campaign (id)
24+ website (id)
25+ status (string)
26+ start_date (date)
27+ end_date (date)
28+ appeal_id (string)
29+ appeal_status (string)
2330 limit (int)
2431 offset (int)
2532
2633 """
27- return self .transport .get ().set_pagination (** kwargs ).request (url = self .URL )
34+ filtering = {
35+ 'filter_by' : kwargs ,
36+ 'available' : {
37+ 'campaign' : lambda x : Item .sanitize_integer_value (x , 'campaign' , blank = True ),
38+ 'website' : lambda x : Item .sanitize_integer_value (x , 'website' , blank = True ),
39+ 'status' : lambda x : Item .sanitize_string_value (x , 'status' , blank = True ),
40+ 'start_date' : lambda x : Item .sanitize_string_value (x , 'start_date' , blank = True ),
41+ 'end_date' : lambda x : Item .sanitize_string_value (x , 'end_date' , blank = True ),
42+ 'appeal_id' : lambda x : Item .sanitize_string_value (x , 'appeal_id' , blank = True ),
43+ 'appeal_status' : lambda x : Item .sanitize_string_value (x , 'appeal_status' , blank = True ),
44+ }
45+ }
46+
47+ return self .transport .get () \
48+ .set_filtering (filtering ) \
49+ .set_pagination (** kwargs ) \
50+ .request (url = self .URL )
2851
2952 def getOne (self , lost_order_id ):
3053 """
@@ -46,6 +69,7 @@ class LostOrdersManager(Item):
4669
4770 DELETE_URL = Item .prepare_url ('lost_orders/%(lost_order_id)s/decline' )
4871 CREATE_URL = Item .prepare_url ('lost_orders/create' )
72+ UPDATE_URL = Item .prepare_url ('lost_orders/%(lost_order_id)s/update' )
4973
5074 CREATE_FIELDS = {
5175 'campaign' : lambda x : Item .sanitize_integer_value (x , 'campaign' ),
@@ -54,6 +78,7 @@ class LostOrdersManager(Item):
5478 'order_date' : lambda x : Item .sanitize_date (x , 'order_date' ),
5579 'order_price' : lambda x : Item .sanitize_float_value (x , 'order_price' ),
5680 'comment' : lambda x : Item .sanitize_string_value (x , 'comment' ),
81+ 'appeal_id' : lambda x : Item .sanitize_string_value (x , 'appeal_id' ),
5782 }
5883
5984 def delete (self , lost_order_id ):
@@ -78,10 +103,29 @@ def create(self, attachments, **kwargs):
78103 order_id (str)
79104 order_date (date)
80105 order_price (float)
106+ appeal_id (str)
81107 comment (str)
82108
83109 """
84110 data = Item .sanitize_fields (self .CREATE_FIELDS , ** kwargs )
85111 files = [('attachment' , open (item , 'rb' )) for item in Item .sanitize_string_array (attachments , 'attachments' )]
86112
87113 return self .transport .post ().set_data (data ).set_files (files ).request (url = self .CREATE_URL )
114+
115+ def update (self , lost_order_id , appeal_status ):
116+ """
117+ Args:
118+ lost_order_id (int)
119+ appeal_status (str)
120+
121+ """
122+ request_data = {
123+ 'url' : self .UPDATE_URL ,
124+ 'lost_order_id' : Item .sanitize_id (lost_order_id ),
125+ }
126+
127+ data = {
128+ 'appeal_status' : self .sanitize_string_value (appeal_status , 'appeal_status' ),
129+ }
130+
131+ return self .transport .put ().set_data (data ).request (** request_data )
0 commit comments