22import logging
33
44import requests
5-
65from requests .exceptions import RequestException
76
87
@@ -83,6 +82,7 @@ def update_user(self, user):
8382 def update_users_bulk (self , users ):
8483 # type: (list) -> dict
8584 """
85+ Warning! Deprecated method, use batch_process instead.
8686 Create / Update User bulk.
8787 :param users: list of user dicts [(email, id, firstName, lastName, birthday, createdAt, gender)]
8888 :return: json dict response
@@ -167,19 +167,18 @@ def delete_user_attribute(self, attribute_id):
167167 payload = {}
168168 return self .__create_request (payload , self .REQUEST_DELETE )
169169
170- def send_events (self , events , email = None , external_id = None , business_unit = None ):
171- # type: (dict), (list) -> dict
170+ def send_events (self , events , email = None , user_id = None , business_unit = None ):
172171 """
173172 Send up to 50 events for a given user.
174173 :param email: user email
175174 :param events: list of event payloads
176175 :param business_unit: businessUnit of user in crossengage
177- :param external_id : id of user in crossengage
176+ :param user_id : id of user in your database
178177 :return: json dict response, for example: {"status_code": 200}
179178 """
180- self .request_url = self .API_URL + self .EVENTS_ENDPOINT
179+ self .request_url = "{}{}" . format ( self .API_URL , self .EVENTS_ENDPOINT )
181180
182- if email is None and external_id is None :
181+ if email is None and user_id is None :
183182 raise ValueError ('email or external_id required for sending events' )
184183
185184 payload = {
@@ -189,8 +188,8 @@ def send_events(self, events, email=None, external_id=None, business_unit=None):
189188 if email is not None :
190189 payload ['email' ] = email
191190
192- if external_id is not None :
193- payload ['externalId ' ] = external_id
191+ if user_id is not None :
192+ payload ['id ' ] = user_id
194193
195194 if business_unit is not None :
196195 payload ['businessUnit' ] = business_unit
@@ -283,16 +282,19 @@ def __create_request(self, payload, request_type):
283282
284283 except RequestException as e :
285284 # handle all requests HTTP exceptions
286- response = {'success' : False , 'errors' : {'connection_error' : e . message }}
285+ response = {'success' : False , 'errors' : {'connection_error' : str ( e ) }}
287286 except Exception as e :
288287 # handle all exceptions which can be on API side
289- response = {'success' : False , 'errors' : {'client_error' : e . message + '. Response: ' + r . text }}
288+ response = {'success' : False , 'errors' : {'client_error' : str ( e ) }}
290289
291290 if 'status_code' not in response :
292291 response ['status_code' ] = 0
293292
294293 if response ['status_code' ] == 500 :
295294 response ['success' ] = False
296- response ['errors' ] = {'server_error' : response ['message' ]}
295+ response ['errors' ] = {'server_error' : 'error on crossengage side' }
296+
297+ if response ['status_code' ] > 202 :
298+ response ['success' ] = False
297299
298300 return response
0 commit comments