def request_valid_stores(keys, rt_key): """ Method that requests valid stores to geolocation endpoint Params: ----- rt_key : str Routing Key (store, item, price) """ all_st = [] for retailer in keys: # Fetch stores info from Geolocation Service r = br.get(stores_endp_url % retailer) if not r: logger.error('Request error to geolocation service!') continue stores_d = r.json() if rt_key == 'item': stores_d = [random.choice(stores_d)] stores_list = [{ 'route_key': rt_key.lower(), 'retailer_key': retailer, 'external_id': st['external_id'], 'store_uuid': st['uuid'], 'name': st['name'] } for st in stores_d[:int(STORES)]] all_st.extend(stores_list) logger.info('Got {} stores for {}'.format(len(stores_list), retailer)) return all_st
def recommend(name, body): if name not in config.get_recommenders(): logger.error('Unknown recommender name %s' % name) return False try: return config.get_recommenders()[name].recommend(body) except: import traceback, os, sys exc_type, exc_value, exc_traceback = sys.exc_info() logger.error( traceback.format_exception(exc_type, exc_value, exc_traceback)) return False
def recommend(name, body): if name not in config.get_recommenders(): logger.error('Unknown recommender name %s' % name) return False try: return config.get_recommenders()[name].recommend(body) except: import traceback, os, sys exc_type, exc_value, exc_traceback = sys.exc_info() logger.error(traceback.format_exception( exc_type, exc_value, exc_traceback )) return False
def process_event(name, body): if name not in config.get_events(): logger.error('Unknown event name %s' % name) return False observers = config.get_events()[name] for observer in observers: try: if getattr(observer['recommender'], observer['action'])(body) == False: raise Exception('event did not run successfully') except: import traceback, os, sys exc_type, exc_value, exc_traceback = sys.exc_info() logger.error( traceback.format_exception(exc_type, exc_value, exc_traceback)) return False return True
def process_event(name, body): if name not in config.get_events(): logger.error('Unknown event name %s' % name) return False observers = config.get_events()[name] for observer in observers: try: if getattr(observer['recommender'], observer['action'])(body) == False: raise Exception('event did not run successfully') except: import traceback, os, sys exc_type, exc_value, exc_traceback = sys.exc_info() logger.error(traceback.format_exception( exc_type, exc_value, exc_traceback )) return False return True