def __get_number_date_events(event_date): client = db_utils.connect() db = client[skill_config.DB_NAME] res = db.ephemeris.count_documents({ 'date': event_date }) db_utils.close(client) return res
def __user_exists(user_id, date): client = db_utils.connect() db = client[skill_config.DB_NAME] res = db.users.count_documents({ 'user_id': user_id, 'date': date }) db_utils.close(client) return res == 1
def __get_already_fetched_events(user_id, date): client = db_utils.connect() db = client[skill_config.DB_NAME] res = db.users.find_one({ 'user_id': user_id, 'date': date }) db_utils.close(client) return res['fetched_events']
def __reset_user_fetched_events(user_id, date): client = db_utils.connect() db = client[skill_config.DB_NAME] db.users.find_one_and_update({ 'user_id': user_id, 'date': date }, { '$set': { 'fetched_events': [] } }) db_utils.close(client)
def __add_user_fetched_event(user_id, date, event_id): client = db_utils.connect() db = client[skill_config.DB_NAME] db.users.find_one_and_update({ 'user_id': user_id, 'date': date }, { '$push': { 'fetched_events': event_id } }) db_utils.close(client)
def __get_random_event_not_fetched(date, already_fetched): client = db_utils.connect() db = client[skill_config.DB_NAME] events = db.ephemeris.aggregate([ { '$match': { 'date': date, '_id': { '$nin': already_fetched } } }, { '$sample': { 'size': 1 } } ]) db_utils.close(client) return list(events)[0]
def close(): db.close()