"<%s>, [location2poiprob] [KeyError] params=%s, should have key: %s" % (x_request_id, incoming_data, key)) result['message'] = "Params content Error: can't find key=%s" % ( key) result['code'] = 103 return make_response(json.dumps(result), 400) user_id = incoming_data['userId'] user_trace = incoming_data['user_trace'] dev_key = incoming_data['dev_key'] logger.info( '<%s>, [location2poiprob] params: userId=%s, user_trace=%s, dev_key=%s' % (x_request_id, user_id, user_trace, dev_key)) # validate user_trace if not util.validate_user_trace(user_trace): result['message'] = "Unvalid user_trace: %s" % (user_trace) result['code'] = 103 return make_response(json.dumps(result), 400) # request senz.datasource.poi:/senz/poi/ poi_request = { 'userId': user_id, 'dev_key': dev_key, 'locations': user_trace } poi_response = requests.post(POI_URL, data=json.dumps(poi_request)) if poi_response.status_code != 200: logger.error( '<%s>, [location2poiprob] Request poi encounter %s Server Error, url=%s, request=%s' % (x_request_id, poi_response.status_code, POI_URL, poi_request))
# params key checking for key in ['userId', 'user_trace', 'dev_key']: if key not in incoming_data: logger.error("<%s>, [location2poiprob] [KeyError] params=%s, should have key: %s" % (x_request_id, incoming_data, key)) result['message'] = "Params content Error: can't find key=%s" % (key) result['code'] = 103 return make_response(json.dumps(result), 400) user_id = incoming_data['userId'] user_trace = incoming_data['user_trace'] dev_key = incoming_data['dev_key'] logger.info('<%s>, [location2poiprob] params: userId=%s, user_trace=%s, dev_key=%s' % (x_request_id, user_id, user_trace, dev_key)) # validate user_trace if not util.validate_user_trace(user_trace): result['message'] = "Unvalid user_trace: %s" % (user_trace) result['code'] = 103 return make_response(json.dumps(result), 400) # request senz.datasource.poi:/senz/poi/ poi_request = {'userId': user_id, 'dev_key': dev_key, 'locations': user_trace} poi_response = requests.post(POI_URL, data=json.dumps(poi_request)) if poi_response.status_code != 200: logger.error('<%s>, [location2poiprob] Request poi encounter %s Server Error, url=%s, request=%s' % (x_request_id, poi_response.status_code, POI_URL, poi_request)) result['message'] = 'Request poi encounter %s Server Error' % (poi_response.status_code) result['code'] = 302 return make_response(json.dumps(result), 500) poi_results = poi_response.json() poi_results = poi_results['results']['parse_poi']
except ValueError, err_msg: logger.exception('<%s>, [location2poiprob] [ValueError] err_msg: %s, params=%s' % (x_request_id, err_msg, request.data)) result['message'] = 'Invalid params: NOT a JSON Object' result['code'] = 103 return make_response(json.dumps(result), 400) # params key checking for key in ['userId', 'user_trace', 'dev_key']: if key not in incoming_data: logger.error("<%s>, [location2poiprob] [KeyError] params=%s, should have key: %s" % (x_request_id, incoming_data, key)) result['message'] = "Params content Error: can't find key=%s" % (key) result['code'] = 103 return make_response(json.dumps(result), 400) # validate user_trace if not util.validate_user_trace(incoming_data['user_trace']): result['message'] = "Invalid user_trace: %s" % (incoming_data['user_trace']) result['code'] = 103 return make_response(json.dumps(result), 400) user_id = incoming_data['userId'] user_trace = incoming_data['user_trace'] dev_key = incoming_data['dev_key'] logger.info('<%s>, [location2poiprob] valid params: userId=%s, user_trace=%s, dev_key=%s' % (x_request_id, user_id, user_trace, dev_key)) # async request senz.datasource.poi:/senz/places/, for data record places_request = {'userId': user_id, 'dev_key': dev_key, 'locations': user_trace} places_greenlet = gevent.spawn(requests.post, PLACE_URL, data=json.dumps(places_request)) # async request senz.parserhub.poi:/pois/