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))
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))
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)
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))
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)