def update_survey_completion()

in lambda/src/data_access/survey_completion.py [0:0]


def update_survey_completion(user_id, report_date, bot_name, require_follow_up=False):
    report_date_str = format_date_to_str(report_date)
    survey_entry = get_survey_completion_entry(user_id, report_date_str)
    if not survey_entry:
        logger.info('No survey completion entry to update. do nothing.')
        return
    if SURVEY_TBC_COL not in survey_entry or len(survey_entry[SURVEY_TBC_COL]) == 0:
        logger.info('All survey already completed. do nothing')
        return

    surveys_to_complete = survey_entry[SURVEY_TBC_COL]
    survey_completed = survey_entry[SURVEY_COMPLETE_COL]
    new_surveys_to_complete = []
    for s in surveys_to_complete:
        if s['BotName'] == bot_name:
            survey_completed.append(s)
        else:
            new_surveys_to_complete.append(s)
    with DDBUpdateBuilder(
            key={'Patient_ID': user_id, 'Report_Date': report_date_str},
            table_name=SURVEY_COMPLETION_TABLE) as ddb_update_builder:
        ddb_update_builder.update_attr(SURVEY_COMPLETE_COL, survey_completed)
        ddb_update_builder.update_attr(SURVEY_TBC_COL, new_surveys_to_complete)