Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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