def get_mails_to_send():
    today = datetime.now()
    for user in UserModel.scan((UserModel.firstLogin == True) & (UserModel.userId == '9229eeeb-4b8d-4c72-b938-260f87968461')):
        week_ago = today - timedelta(weeks=1)
        ideas_last_week = IdeaModel.usersIdeasByDateIndex.query(user.userId, (IdeaModel.createdDate > week_ago),
                                                                limit=100, scan_index_forward=False)
        yield (user, list(ideas_last_week))
Пример #2
0
def get_mails_to_send():
    today = datetime.now()
    for user in UserModel.scan((UserModel.firstLogin == True) & (UserModel.weeklyDigests == True)):
        week_ago = today - timedelta(weeks=1)
        ideas_last_week = IdeaModel.usersIdeasByDateIndex.query(user.userId, (IdeaModel.createdDate > week_ago),
                                                                limit=100, scan_index_forward=False)
        yield (user, list(ideas_last_week))
Пример #3
0
def endpoint(event, context):
    now = datetime.datetime.now()
    users_iterator = UserModel.scan(
        (UserModel.firstLogin == True) & (UserModel.ideaReminders == True) & (
                    (~UserModel.snoozeEmails.is_type()) | (UserModel.snoozeEmails < now)),
        page_size=SEND_BATCH_EMAIL_CHUNK_SIZE,
        attributes_to_get=['name', 'email', 'userId', 'emailToken'])
    for chunk_to_send in progressive_chunks(users_iterator, SEND_BATCH_EMAIL_CHUNK_SIZE):
        send_daily_bulk(chunk_to_send)
Пример #4
0
def get_mails_to_send():
    today = datetime.now()
    for user in UserModel.scan(
        (UserModel.firstLogin == True) 
        & (UserModel.weeklyDigests == True) 
        & (UserModel.unsubscribedAt.does_not_exist() | (UserModel.unsubscribedAt.exists() & ~UserModel.unsubscribedAt.is_type()))
        ,
        attributes_to_get=['name', 'email', 'userId', 'emailToken']
    ):

        week_ago = today - timedelta(weeks=1)
        ideas_last_week = IdeaModel.usersIdeasByDateIndex.query(user.userId, (IdeaModel.createdDate > week_ago),
                                                                limit=100, scan_index_forward=False)
        yield (user, list(ideas_last_week))
Пример #5
0
def endpoint(event, context):
    now = datetime.now()
    users_iterator = UserModel.scan(
        (UserModel.firstLogin == True)
        & (UserModel.hotStreaks == True)
        & (UserModel.unsubscribedAt.does_not_exist() |
           (UserModel.unsubscribedAt.exists()
            & ~UserModel.unsubscribedAt.is_type()))
        & ((~UserModel.snoozeEmails.is_type()) |
           (UserModel.snoozeEmails < now)),
        page_size=SEND_BATCH_EMAIL_CHUNK_SIZE,
        attributes_to_get=['name', 'email', 'userId', 'emailToken'])

    for chunk_to_send in progressive_chunks(users_iterator,
                                            SEND_BATCH_EMAIL_CHUNK_SIZE):
        send_weekly_stats_bulk(chunk_to_send)