def validate_create_row_params(rqst_body, validated_params, rqst_errors):
    validated_params['consumer_id'] = clean_int_value_from_dict_object(
        rqst_body, "root", "consumer_id", rqst_errors)

    validated_params['navigator_id'] = clean_int_value_from_dict_object(
        rqst_body, "root", "navigator_id", rqst_errors)

    validated_params['cm_client_id'] = clean_int_value_from_dict_object(
        rqst_body, "root", "cm_client_id", rqst_errors, none_allowed=True)

    validated_params['cm_sequence_id'] = clean_int_value_from_dict_object(
        rqst_body, "root", "cm_sequence_id", rqst_errors, none_allowed=True)

    if 'notes' in rqst_body:
        validated_params['notes'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "notes",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True)

    if "datetime_completed" in rqst_body:
        datetime_completed = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "datetime_completed",
            rqst_errors,
            none_allowed=True)
        validated_datetime_completed = None
        if datetime_completed:
            try:
                validated_datetime_completed = datetime.datetime.strptime(
                    datetime_completed,
                    "%Y-%m-%dT%H:%M:%S").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'datetime_completed must be a properly formatted datetime string in UTC, eg. YYYY-MM-DDTHH:MM:SS. Value is : {}'
                    .format(datetime_completed))
        validated_params['datetime_completed'] = validated_datetime_completed

    if "client_appointment_datetime" in rqst_body:
        client_appointment_datetime = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "client_appointment_datetime",
            rqst_errors,
            none_allowed=True)
        validated_client_appointment_datetime = None
        if client_appointment_datetime:
            try:
                validated_client_appointment_datetime = datetime.datetime.strptime(
                    client_appointment_datetime,
                    "%Y-%m-%dT%H:%M:%S").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'client_appointment_datetime must be a properly formatted datetime string in UTC, eg. YYYY-MM-DDTHH:MM:SS. Value is : {}'
                    .format(client_appointment_datetime))
        validated_params[
            'client_appointment_datetime'] = validated_client_appointment_datetime
def validate_create_row_params(rqst_body, validated_params, rqst_errors):
    validated_params[
        "rqst_specific_concern_question"] = clean_string_value_from_dict_object(
            rqst_body, "root", "question", rqst_errors)

    rqst_specific_concern_research_weight = clean_int_value_from_dict_object(
        rqst_body, "root", "research_weight", rqst_errors, no_key_allowed=True)
    if not rqst_specific_concern_research_weight:
        rqst_specific_concern_research_weight = ConsumerSpecificConcern.RESEARCH_WEIGHT_DEFAULT
    elif rqst_specific_concern_research_weight > 100:
        rqst_errors.append(
            "Value for 'research_weight' must be less than 100. Given value is: {}"
            .format(rqst_specific_concern_research_weight))
    validated_params[
        "rqst_specific_concern_research_weight"] = rqst_specific_concern_research_weight

    if "add_related_general_concerns" in rqst_body:
        rqst_add_related_general_concerns_names = clean_list_value_from_dict_object(
            rqst_body,
            "root",
            "add_related_general_concerns",
            rqst_errors,
            empty_list_allowed=True)
        add_related_general_concerns_objects = []
        if rqst_add_related_general_concerns_names:
            validate_related_gen_concern_names(
                rqst_add_related_general_concerns_names, rqst_errors)

            if not rqst_errors:
                add_related_general_concerns_objects = ConsumerGeneralConcern.retrieve_related_gen_concern_rows_by_name(
                    rqst_add_related_general_concerns_names, rqst_errors)
        validated_params[
            "add_related_general_concerns_objects"] = add_related_general_concerns_objects
示例#3
0
def add_nav_apt_to_google_calendar(post_data, post_errors):
    """
    This function takes a dictionary populated with data about a consumer appointment with a navigator, adds it to the
    navigator's 'Navigator-Consumer Appointments (DO NOT CHANGE)' calendar, and sends an email notification to the
    consumer

    :param post_data: (type: dictionary) dictionary with Patient Assist appointment info
    :param post_errors: (type: list) list of error messages
    :return:
    """

    scheduled_appointment = {}
    rqst_nav_id = clean_int_value_from_dict_object(post_data, "root", "Navigator ID", post_errors)
    rqst_apt_datetime = clean_string_value_from_dict_object(post_data, "root", "Appointment Date and Time", post_errors)
    if not isinstance(rqst_apt_datetime, str):
        post_errors.append("{!s} is not a string, Preferred Times must be a string iso formatted date and time".format(str(rqst_apt_datetime)))

    consumer_info = create_consumer_instance_from_apt_rqst(rqst_nav_id, post_data, post_errors)
    try:
        picstaff_object = Navigators.objects.get(id=rqst_nav_id)
        credentials_object = CredentialsModel.objects.get(id=picstaff_object)
        nav_info = picstaff_object.return_values_dict()
        if credentials_object.credential.invalid:
            credentials_object.delete()
            post_errors.append('Google Credentials database entry is invalid for the navigator with id: {!s}'.format(str(rqst_nav_id)))
        else:
            scheduled_appointment = send_add_apt_rqst_to_google_and_email_consumer(credentials_object.credential, rqst_apt_datetime, consumer_info, nav_info, post_errors)

    except Navigators.DoesNotExist:
        post_errors.append('Navigator database entry does not exist for the id: {!s}'.format(str(rqst_nav_id)))
    except CredentialsModel.DoesNotExist:
        post_errors.append('Google Credentials database entry does not exist for the navigator with id: {!s}'.format(str(rqst_nav_id)))

    return scheduled_appointment, consumer_info
def validate_put_rqst_params(rqst_body, rqst_errors):
    validated_params = {
        'rqst_action': clean_string_value_from_dict_object(rqst_body, "root", "db_action", rqst_errors)
    }

    rqst_action = validated_params['rqst_action']

    if rqst_action == 'create':
        validate_create_row_params(rqst_body, validated_params, rqst_errors)
    elif rqst_action == 'update':
        validated_params['rqst_id'] = clean_int_value_from_dict_object(rqst_body, "root", "id", rqst_errors)
        validate_update_row_params(rqst_body, validated_params, rqst_errors)
    elif rqst_action == 'delete':
        validated_params['rqst_id'] = clean_int_value_from_dict_object(rqst_body, "root", "id", rqst_errors)

    return validated_params
def validate_rqst_params_and_delete_instance(post_data, post_errors):
    """
    This function takes dictionary populated with PIC consumer info, parses for errors, and deletes the consumer
    instance if there are none.

    :param response_raw_data: (type: dictionary) dictionary that contains response data
    :param post_data: (type: dictionary) dictionary with PIC consumer info
    :param post_errors: (type: list) list of error messages
    :return: (type: dictionary) dictionary that contains response data
    """

    rqst_consumer_id = clean_int_value_from_dict_object(
        post_data, "root", "Consumer Database ID", post_errors)
    rqst_create_backup = clean_bool_value_from_dict_object(post_data,
                                                           "root",
                                                           "create_backup",
                                                           post_errors,
                                                           no_key_allowed=True)

    backup_consumer_obj = None
    if not post_errors:
        backup_consumer_obj = delete_row_w_validated_params(
            rqst_consumer_id, rqst_create_backup, post_errors)

    return backup_consumer_obj
示例#6
0
def validate_create_row_params(rqst_body, validated_params, rqst_errors):
    validated_params['step_name'] = clean_string_value_from_dict_object(
        rqst_body, "root", "step_name", rqst_errors)

    validated_params['step_class_name'] = clean_string_value_from_dict_object(
        rqst_body, "root", "step_class_name", rqst_errors)

    if 'step_table_name' in rqst_body:
        validated_params[
            'step_table_name'] = clean_string_value_from_dict_object(
                rqst_body,
                "root",
                "step_tables_name",
                rqst_errors,
                empty_string_allowed=True,
                none_allowed=True)

    validated_params['step_number'] = clean_int_value_from_dict_object(
        rqst_body, "root", "step_number", rqst_errors)
    if validated_params['step_number'] and validated_params['step_number'] < 0:
        rqst_errors.append(
            "Value for 'step_number' must be greater than 0. Given value is: {}"
            .format(validated_params['step_number']))

    if 'rest_url' in rqst_body:
        validated_params['rest_url'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "rest_url",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True)
示例#7
0
def validate_update_job_row_params(job_row_dict, job_row_index, rqst_errors):
    validated_job_row_dict = {
        'id': clean_int_value_from_dict_object(
            job_row_dict,
            "update_job_row[{}]".format(job_row_index),
            "id",
            rqst_errors
        )
    }

    if 'title' in job_row_dict:
        validated_job_row_dict['title'] = clean_string_value_from_dict_object(
            job_row_dict,
            "update_job_row[{}]".format(job_row_index),
            "title",
            rqst_errors,
        )
    if 'company' in job_row_dict:
        validated_job_row_dict['company'] = clean_string_value_from_dict_object(
            job_row_dict,
            "update_job_row[{}]".format(job_row_index),
            "company",
            rqst_errors,
        )
    if 'description' in job_row_dict:
        validated_job_row_dict['description'] = clean_string_value_from_dict_object(
            job_row_dict,
            "update_job_row[{}]".format(job_row_index),
            "description",
            rqst_errors,
            none_allowed=True
        )
    if "start_year_datetime" in job_row_dict:
        start_year_datetime = clean_string_value_from_dict_object(job_row_dict, "root", "start_year_datetime", rqst_errors, none_allowed=True)
        validated_start_year_datetime = None
        if start_year_datetime:
            try:
                validated_start_year_datetime = datetime.datetime.strptime(start_year_datetime, "%Y").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'start_year_datetime must be a properly formatted datetime string in UTC, eg. YYYY. Value is : {}'.format(
                        start_year_datetime)
                )
        validated_job_row_dict['start_year_datetime'] = validated_start_year_datetime
    if "end_year_datetime" in job_row_dict:
        end_year_datetime = clean_string_value_from_dict_object(job_row_dict, "root", "end_year_datetime", rqst_errors, none_allowed=True)
        validated_end_year_datetime = None
        if end_year_datetime:
            try:
                validated_end_year_datetime = datetime.datetime.strptime(end_year_datetime, "%Y").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'end_year_datetime must be a properly formatted datetime string in UTC, eg. YYYY. Value is : {}'.format(
                        end_year_datetime)
                )
        validated_job_row_dict['end_year_datetime'] = validated_end_year_datetime

    return validated_job_row_dict
示例#8
0
def validate_delete_education_row_params(education_row_dict, education_row_index, rqst_errors):
    validated_education_row_dict = {
        'id': clean_int_value_from_dict_object(
            education_row_dict,
            "delete_education_row[{}]".format(education_row_index),
            "id",
            rqst_errors
        )
    }

    return validated_education_row_dict
示例#9
0
def validate_delete_resume_row_params(resume_row_params, rqst_errors):
    validated_resume_row_params = {
        'id': clean_int_value_from_dict_object(
            resume_row_params,
            "delete_resume_row",
            "id",
            rqst_errors
        )
    }

    return validated_resume_row_params
def validate_update_row_params(rqst_body, validated_params, rqst_errors):
    if 'consumer_id' in rqst_body:
        validated_params['consumer_id'] = clean_int_value_from_dict_object(
            rqst_body, "root", "consumer_id", rqst_errors)

    if 'navigator_id' in rqst_body:
        validated_params['navigator_id'] = clean_int_value_from_dict_object(
            rqst_body, "root", "navigator_id", rqst_errors)

    if 'notes' in rqst_body:
        validated_params['notes'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "notes",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True)

    if 'status' in rqst_body:
        validated_params['status'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "status",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True)

        if not validated_params['status']:
            validated_params['status'] = "not available"

    if 'severity' in rqst_body:
        validated_params['severity'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "severity",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True)

        if not validated_params['severity']:
            validated_params['severity'] = "not available"
def validate_update_row_params(rqst_body, validated_params, rqst_errors):
    if "name" in rqst_body:
        rqst_provider_location_name = clean_string_value_from_dict_object(
            rqst_body, "root", "name", rqst_errors)
        validated_params["name"] = rqst_provider_location_name

    if 'state_province' in rqst_body:
        state_province = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "state_province",
            rqst_errors,
            none_allowed=True,
            empty_string_allowed=True)
        if not state_province:
            state_province = 'not available'
        validated_params["state_province"] = state_province

    if "provider_network_id" in rqst_body:
        rqst_provider_network_id = clean_int_value_from_dict_object(
            rqst_body,
            "root",
            "provider_network_id",
            rqst_errors,
            none_allowed=True)
        validated_params["provider_network_id"] = rqst_provider_network_id

    if "add_accepted_plans" in rqst_body:
        rqst_add_accepted_plans_ids = clean_list_value_from_dict_object(
            rqst_body,
            "root",
            "add_accepted_plans",
            rqst_errors,
        )

        if rqst_add_accepted_plans_ids:
            add_accepted_plan_objects = validate_accepted_plans_params(
                rqst_add_accepted_plans_ids, rqst_errors)
            validated_params[
                "add_accepted_plans_objects"] = add_accepted_plan_objects
    elif "remove_accepted_plans" in rqst_body:
        rqst_remove_accepted_plans_ids = clean_list_value_from_dict_object(
            rqst_body,
            "root",
            "remove_accepted_plans",
            rqst_errors,
        )

        if rqst_remove_accepted_plans_ids:
            remove_accepted_plan_objects = validate_accepted_plans_params(
                rqst_remove_accepted_plans_ids, rqst_errors)
            validated_params[
                "remove_accepted_plans_objects"] = remove_accepted_plan_objects
def validate_put_rqst_params(rqst_body, rqst_errors):
    validated_params = {
        'db_action':
        clean_string_value_from_dict_object(rqst_body, "root", "db_action",
                                            rqst_errors)
    }

    if validated_params['db_action'] == 'create':
        validate_params_for_create_row(rqst_body, validated_params,
                                       rqst_errors)
    elif validated_params['db_action'] == 'update':
        validated_params['id'] = clean_int_value_from_dict_object(
            rqst_body, "root", "id", rqst_errors)
        validate_params_for_update_row(rqst_body, validated_params,
                                       rqst_errors)
    elif validated_params['db_action'] == 'delete':
        validated_params['id'] = clean_int_value_from_dict_object(
            rqst_body, "root", "id", rqst_errors)
    else:
        rqst_errors.append("No valid 'db_action' provided.")

    return validated_params
示例#13
0
def delete_nav_apt_from_google_calendar(post_data, post_errors):
    """
    This function takes a dictionary populated with data about a consumer appointment with a navigator and deletes it
    from the navigator's 'Navigator-Consumer Appointments (DO NOT CHANGE)' calendar.

    :param post_data: (type: dictionary) dictionary with Patient Assist appointment info
    :param post_errors: (type: list) list of error messages
    :return:
    """

    google_apt_deleted = False

    rqst_nav_id = clean_int_value_from_dict_object(post_data, "root", "Navigator ID", post_errors)
    rqst_apt_datetime = clean_string_value_from_dict_object(post_data, "root", "Appointment Date and Time", post_errors)
    if not isinstance(rqst_apt_datetime, str):
        post_errors.append("{!s} is not a string, Preferred Times must be a string iso formatted date and time".format(str(rqst_apt_datetime)))

    try:
        picstaff_object = Navigators.objects.get(id=rqst_nav_id)
        credentials_object = CredentialsModel.objects.get(id=picstaff_object)
        nav_info = picstaff_object.return_values_dict()
        if credentials_object.credential.invalid:
            credentials_object.delete()
            post_errors.append('Google Credentials database entry is invalid for the navigator with id: {!s}'.format(str(rqst_nav_id)))
        else:
            service = build_authorized_cal_http_service_object(credentials_object.credential)

            navigator_calendar_found, navigator_calendar_id = check_cal_objects_for_nav_cal(service, post_errors)
            if not navigator_calendar_found:
                post_errors.append("Navigator calendar not found for this navigator, creating it...")
                navigator_calendar_id = add_nav_cal_to_google_cals(service, post_errors)

            google_apt_id = check_google_cal_for_apt(credentials_object, rqst_apt_datetime, post_errors, navigator_calendar_id)

            if google_apt_id:
                google_apt_deleted = send_delete_apt_rqst_to_google(credentials_object, google_apt_id, navigator_calendar_id, post_errors)
            else:
                post_errors.append('Appointment with consumer at {!s}, was not found in Navigator\'s Google Calendar'.format(rqst_apt_datetime))

    except Navigators.DoesNotExist:
        post_errors.append('Navigator database entry does not exist for the id: {!s}'.format(str(rqst_nav_id)))
    except CredentialsModel.DoesNotExist:
        post_errors.append('Google Credentials database entry does not exist for the navigator with id: {!s}'.format(str(rqst_nav_id)))

    return google_apt_deleted
示例#14
0
def validate_update_row_params(rqst_body, validated_params, rqst_errors):
    if "family_size" in rqst_body:
        family_size = clean_int_value_from_dict_object(rqst_body, "root",
                                                       "family_size",
                                                       rqst_errors)
        if family_size:
            if family_size < 0:
                rqst_errors.append("family_size must be greater than 0")
        validated_params["family_size"] = family_size

    if "medicaid_income_limit" in rqst_body:
        medicaid_income_limit = clean_float_value_from_dict_object(
            rqst_body, "root", "medicaid_income_limit", rqst_errors)
        if medicaid_income_limit:
            if medicaid_income_limit < 0:
                rqst_errors.append(
                    "medicaid_income_limit must be greater than 0")
        validated_params["medicaid_income_limit"] = medicaid_income_limit

    if "tax_cred_for_marketplace_income_limit" in rqst_body:
        tax_cred_for_marketplace_income_limit = clean_float_value_from_dict_object(
            rqst_body, "root", "tax_cred_for_marketplace_income_limit",
            rqst_errors)
        if tax_cred_for_marketplace_income_limit:
            if tax_cred_for_marketplace_income_limit < 0:
                rqst_errors.append(
                    "tax_cred_for_marketplace_income_limit must be greater than 0"
                )
        validated_params[
            "tax_cred_for_marketplace_income_limit"] = tax_cred_for_marketplace_income_limit

    if "marketplace_without_subsidies_income_level" in rqst_body:
        marketplace_without_subsidies_income_level = clean_float_value_from_dict_object(
            rqst_body, "root", "marketplace_without_subsidies_income_level",
            rqst_errors)
        if marketplace_without_subsidies_income_level:
            if marketplace_without_subsidies_income_level < 0:
                rqst_errors.append(
                    "marketplace_without_subsidies_income_level must be greater than 0"
                )
        validated_params[
            "marketplace_without_subsidies_income_level"] = marketplace_without_subsidies_income_level
def validate_create_row_params(rqst_body, validated_params, rqst_errors):
    rqst_provider_location_name = clean_string_value_from_dict_object(
        rqst_body, "root", "name", rqst_errors)
    validated_params["name"] = rqst_provider_location_name

    state_province = clean_string_value_from_dict_object(
        rqst_body,
        "root",
        "state_province",
        rqst_errors,
        none_allowed=True,
        empty_string_allowed=True)
    if not state_province:
        state_province = 'not available'
    validated_params["state_province"] = state_province

    rqst_provider_network_id = clean_int_value_from_dict_object(
        rqst_body,
        "root",
        "provider_network_id",
        rqst_errors,
        none_allowed=True)
    validated_params["provider_network_id"] = rqst_provider_network_id

    rqst_add_accepted_plans_ids = clean_list_value_from_dict_object(
        rqst_body,
        "root",
        "add_accepted_plans",
        rqst_errors,
        empty_list_allowed=True)

    add_accepted_plan_objects = []
    if rqst_add_accepted_plans_ids:
        add_accepted_plan_objects = validate_accepted_plans_params(
            rqst_add_accepted_plans_ids, rqst_errors)
    validated_params["add_accepted_plans_objects"] = add_accepted_plan_objects
示例#16
0
def validate_create_row_params(rqst_body, validated_params, rqst_errors):
    """
    This function parses the BODY of requests for PIC consumer management PUT requests, checks for errors, and returns
    relevant information as a dictionary

    :param rqst_body: (type: dictionary) Carrier information to be parsed
    :param rqst_errors: (type: list) list of error messages
    :return: (type: dictionary) dictionary with relevant consumer information
    """

    # Summary report fields
    validated_params["medical_deductible_individual_standard"] = clean_float_value_from_dict_object(
        rqst_body,
        "root",
        "medical_deductible_individual_standard",
        rqst_errors,
        none_allowed=True,
        no_key_allowed=True
    )

    validated_params["medical_out_of_pocket_max_individual_standard"] = clean_float_value_from_dict_object(
        rqst_body,
        "root",
        "medical_out_of_pocket_max_individual_standard",
        rqst_errors,
        none_allowed=True,
        no_key_allowed=True
    )

    rqst_primary_care_physician_standard_cost = create_healthcare_service_cost_instances_from_string(
        clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "primary_care_physician_standard_cost",
            rqst_errors,
            none_allowed=True,
            no_key_allowed=True
        ),
        "primary_care_physician_individual_standard_cost",
        rqst_errors
    )
    validated_params["primary_care_physician_standard_cost"] = rqst_primary_care_physician_standard_cost

    # Detailed report fields
    validated_params["rqst_plan_name"] = clean_string_value_from_dict_object(rqst_body, "root", "name", rqst_errors)

    validated_params["rqst_carrier_id"] = clean_int_value_from_dict_object(
        rqst_body,
        "root",
        "Carrier Database ID",
        rqst_errors
    )

    validated_params["rqst_plan_premium_type"] = clean_string_value_from_dict_object(
        rqst_body,
        "root",
        "premium_type",
        rqst_errors,
        none_allowed=True,
        no_key_allowed=True
    )

    validated_params["rqst_plan_metal_level"] = clean_string_value_from_dict_object(
        rqst_body,
        "root",
        "metal_level",
        rqst_errors,
        none_allowed=True,
        no_key_allowed=True
    )

    validated_params["county"] = clean_string_value_from_dict_object(
        rqst_body,
        "root",
        "county",
        rqst_errors,
        none_allowed=True,
        no_key_allowed=True
    )

    rqst_specialist_standard_cost = create_healthcare_service_cost_instances_from_string(
        clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "specialist_standard_cost",
            rqst_errors,
            none_allowed=True,
            no_key_allowed=True
        ),
        "specialist_standard_cost",
        rqst_errors
    )
    validated_params["specialist_standard_cost"] = rqst_specialist_standard_cost

    rqst_emergency_room_standard_cost = create_healthcare_service_cost_instances_from_string(
        clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "emergency_room_standard_cost",
            rqst_errors,
            none_allowed=True,
            no_key_allowed=True
        ),
        "emergency_room_standard_cost",
        rqst_errors
    )
    validated_params["emergency_room_standard_cost"] = rqst_emergency_room_standard_cost

    rqst_inpatient_facility_standard_cost = create_healthcare_service_cost_instances_from_string(
        clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "inpatient_facility_standard_cost",
            rqst_errors,
            none_allowed=True,
            no_key_allowed=True
        ),
        "inpatient_facility_standard_cost",
        rqst_errors
    )
    validated_params["inpatient_facility_standard_cost"] = rqst_inpatient_facility_standard_cost

    rqst_generic_drugs_standard_cost = create_healthcare_service_cost_instances_from_string(
        clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "generic_drugs_standard_cost",
            rqst_errors,
            none_allowed=True,
            no_key_allowed=True
        ),
        "generic_drugs_standard_cost",
        rqst_errors
    )
    validated_params["generic_drugs_standard_cost"] = rqst_generic_drugs_standard_cost

    rqst_preferred_brand_drugs_standard_cost = create_healthcare_service_cost_instances_from_string(
        clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "preferred_brand_drugs_standard_cost",
            rqst_errors,
            none_allowed=True,
            no_key_allowed=True
        ),
        "preferred_brand_drugs_standard_cost",
        rqst_errors
    )
    validated_params["preferred_brand_drugs_standard_cost"] = rqst_preferred_brand_drugs_standard_cost

    rqst_non_preferred_brand_drugs_standard_cost = create_healthcare_service_cost_instances_from_string(
        clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "non_preferred_brand_drugs_standard_cost",
            rqst_errors,
            none_allowed=True,
            no_key_allowed=True
        ),
        "non_preferred_brand_drugs_standard_cost",
        rqst_errors
    )
    validated_params["non_preferred_brand_drugs_standard_cost"] = rqst_non_preferred_brand_drugs_standard_cost

    rqst_specialty_drugs_standard_cost = create_healthcare_service_cost_instances_from_string(
        clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "specialty_drugs_standard_cost",
            rqst_errors,
            none_allowed=True,
            no_key_allowed=True
        ),
        "specialty_drugs_standard_cost",
        rqst_errors
    )
    validated_params["specialty_drugs_standard_cost"] = rqst_specialty_drugs_standard_cost

    # Extra benefit report fields
    validated_params["medical_deductible_family_standard"] = clean_float_value_from_dict_object(
        rqst_body,
        "root",
        "medical_deductible_family_standard",
        rqst_errors,
        none_allowed=True,
        no_key_allowed=True
    )

    validated_params["medical_out_of_pocket_max_family_standard"] = clean_float_value_from_dict_object(
        rqst_body,
        "root",
        "medical_out_of_pocket_max_family_standard",
        rqst_errors,
        none_allowed=True,
        no_key_allowed=True
    )
def validate_add_instance_rqst_params(post_data, post_errors):
    rqst_consumer_email = clean_string_value_from_dict_object(
        post_data, "root", "Email", post_errors, empty_string_allowed=True)
    if rqst_consumer_email and not post_errors:
        try:
            validate_email(rqst_consumer_email)
        except forms.ValidationError:
            post_errors.append("{!s} must be a valid email address".format(
                rqst_consumer_email))
    rqst_consumer_f_name = clean_string_value_from_dict_object(
        post_data, "root", "First Name", post_errors)
    rqst_consumer_m_name = clean_string_value_from_dict_object(
        post_data,
        "root",
        "Middle Name",
        post_errors,
        empty_string_allowed=True)
    rqst_consumer_l_name = clean_string_value_from_dict_object(
        post_data, "root", "Last Name", post_errors)
    rqst_consumer_plan = clean_string_value_from_dict_object(
        post_data, "root", "Plan", post_errors, empty_string_allowed=True)
    rqst_consumer_met_nav_at = clean_string_value_from_dict_object(
        post_data, "root", "Met Navigator At", post_errors)
    rqst_consumer_household_size = clean_int_value_from_dict_object(
        post_data, "root", "Household Size", post_errors)
    rqst_consumer_phone = clean_string_value_from_dict_object(
        post_data,
        "root",
        "Phone Number",
        post_errors,
        empty_string_allowed=True)
    rqst_consumer_pref_lang = clean_string_value_from_dict_object(
        post_data,
        "root",
        "Preferred Language",
        post_errors,
        empty_string_allowed=True)
    rqst_navigator_notes = clean_list_value_from_dict_object(
        post_data,
        "root",
        "Navigator Notes",
        post_errors,
        empty_list_allowed=True)

    rqst_address_line_1 = clean_string_value_from_dict_object(
        post_data,
        "root",
        "Address Line 1",
        post_errors,
        empty_string_allowed=True)
    rqst_address_line_2 = clean_string_value_from_dict_object(
        post_data,
        "root",
        "Address Line 2",
        post_errors,
        empty_string_allowed=True)
    if rqst_address_line_2 is None:
        rqst_address_line_2 = ''
    rqst_city = clean_string_value_from_dict_object(post_data,
                                                    "root",
                                                    "City",
                                                    post_errors,
                                                    empty_string_allowed=True)
    rqst_state = clean_string_value_from_dict_object(post_data,
                                                     "root",
                                                     "State",
                                                     post_errors,
                                                     empty_string_allowed=True)
    rqst_zipcode = clean_string_value_from_dict_object(
        post_data, "root", "Zipcode", post_errors, empty_string_allowed=True)

    date_met_nav_dict = clean_dict_value_from_dict_object(post_data,
                                                          "root",
                                                          "date_met_nav",
                                                          post_errors,
                                                          none_allowed=True)
    rqst_date_met_nav = None
    if date_met_nav_dict is not None:
        month = clean_int_value_from_dict_object(date_met_nav_dict,
                                                 "date_met_nav", "Month",
                                                 post_errors)
        if month:
            if month < 1 or month > 12:
                post_errors.append("Month must be between 1 and 12 inclusive")

        day = clean_int_value_from_dict_object(date_met_nav_dict,
                                               "date_met_nav", "Day",
                                               post_errors)
        if day:
            if day < 1 or day > 31:
                post_errors.append("Day must be between 1 and 31 inclusive")

        year = clean_int_value_from_dict_object(date_met_nav_dict,
                                                "date_met_nav", "Year",
                                                post_errors)
        if year:
            if year < 1 or year > 9999:
                post_errors.append("Year must be between 1 and 9999 inclusive")

        if not post_errors:
            rqst_date_met_nav = datetime.date(year, month, day)

    rqst_nav_id = clean_int_value_from_dict_object(post_data, "root",
                                                   "Navigator Database ID",
                                                   post_errors)
    nav_instance = None
    if rqst_nav_id and not post_errors:
        try:
            nav_instance = Navigators.objects.get(id=rqst_nav_id)
        except Navigators.DoesNotExist:
            post_errors.append(
                'Staff database entry does not exist for the navigator id: {}'.
                format(rqst_nav_id))

    rqst_cps_consumer = clean_bool_value_from_dict_object(post_data,
                                                          "root",
                                                          "cps_consumer",
                                                          post_errors,
                                                          no_key_allowed=True)
    rqst_cps_info_dict = clean_dict_value_from_dict_object(post_data,
                                                           "root",
                                                           "cps_info",
                                                           post_errors,
                                                           no_key_allowed=True,
                                                           none_allowed=True)
    if rqst_cps_consumer and not rqst_cps_info_dict:
        post_errors.append(
            "cps_info key must be present and a non empty dictionary in order to set cps_consumer to True."
        )

    validated_cps_info_dict = None
    if rqst_cps_info_dict:
        if rqst_cps_consumer:
            validated_cps_info_dict = validate_cps_info_params_for_add_instance_rqst(
                rqst_cps_info_dict, rqst_consumer_met_nav_at,
                rqst_consumer_household_size, nav_instance, post_errors)
        else:
            post_errors.append(
                "cps_consumer key must be True in order to add consumer with cps_info."
            )

    rqst_create_backup = clean_bool_value_from_dict_object(post_data,
                                                           "root",
                                                           "create_backup",
                                                           post_errors,
                                                           no_key_allowed=True)

    rqst_hospital_info_dict = clean_dict_value_from_dict_object(
        post_data,
        "root",
        "consumer_hospital_info",
        post_errors,
        no_key_allowed=True,
        none_allowed=True)
    validated_hospital_info_dict = None
    if rqst_hospital_info_dict:
        validated_hospital_info_dict = validate_hospital_info_params(
            rqst_hospital_info_dict, post_errors)

    return {
        "rqst_consumer_email": rqst_consumer_email,
        "rqst_consumer_f_name": rqst_consumer_f_name,
        "rqst_consumer_m_name": rqst_consumer_m_name,
        "rqst_consumer_l_name": rqst_consumer_l_name,
        "rqst_consumer_plan": rqst_consumer_plan,
        "rqst_consumer_met_nav_at": rqst_consumer_met_nav_at,
        "rqst_consumer_household_size": rqst_consumer_household_size,
        "rqst_consumer_phone": rqst_consumer_phone,
        "rqst_consumer_pref_lang": rqst_consumer_pref_lang,
        "rqst_navigator_notes": rqst_navigator_notes,
        "rqst_nav_id": rqst_nav_id,
        "nav_instance": nav_instance,
        "rqst_address_line_1": rqst_address_line_1,
        "rqst_address_line_2": rqst_address_line_2,
        "rqst_city": rqst_city,
        "rqst_state": rqst_state,
        "rqst_zipcode": rqst_zipcode,
        "rqst_date_met_nav": rqst_date_met_nav,
        "rqst_cps_consumer": rqst_cps_consumer,
        "rqst_cps_info_dict": rqst_cps_info_dict,
        "validated_cps_info_dict": validated_cps_info_dict,
        "validated_hospital_info_dict": validated_hospital_info_dict,
        "rqst_create_backup": rqst_create_backup
    }
示例#18
0
def validate_create_row_params(rqst_body, validated_params, rqst_errors):
    validated_params['consumer_id'] = clean_int_value_from_dict_object(
        rqst_body,
        "root",
        "consumer_id",
        rqst_errors
    )

    validated_params['navigator_id'] = clean_int_value_from_dict_object(
        rqst_body,
        "root",
        "navigator_id",
        rqst_errors
    )

    validated_params['cm_client_id'] = clean_int_value_from_dict_object(
        rqst_body,
        "root",
        "cm_client_id",
        rqst_errors,
        none_allowed=True
    )

    validated_params['cm_sequence_id'] = clean_int_value_from_dict_object(
        rqst_body,
        "root",
        "cm_sequence_id",
        rqst_errors,
        none_allowed=True
    )

    if 'notes' in rqst_body:
        validated_params['notes'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "notes",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if 'tracking_no' in rqst_body:
        validated_params['tracking_no'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "tracking_no",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if 'user_name' in rqst_body:
        validated_params['user_name'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "user_name",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if "datetime_completed" in rqst_body:
        datetime_completed = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "datetime_completed",
            rqst_errors,
            none_allowed=True
        )
        validated_datetime_completed = None
        if datetime_completed:
            try:
                validated_datetime_completed = datetime.datetime.strptime(datetime_completed, "%Y-%m-%dT%H:%M:%S").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'datetime_completed must be a properly formatted datetime string in UTC, eg. YYYY-MM-DDTHH:MM:SS. Value is : {}'.format(
                        datetime_completed)
                )
        validated_params['datetime_completed'] = validated_datetime_completed

    if 'primary_care_physician' in rqst_body:
        validated_params['primary_care_physician'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "primary_care_physician",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if "appointment_datetime" in rqst_body:
        appointment_datetime = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "appointment_datetime",
            rqst_errors,
            none_allowed=True
        )
        validated_appointment_datetime = None
        if appointment_datetime:
            try:
                validated_appointment_datetime = datetime.datetime.strptime(appointment_datetime, "%Y-%m-%dT%H:%M:%S").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'appointment_datetime must be a properly formatted datetime string in UTC, eg. YYYY-MM-DDTHH:MM:SS. Value is : {}'.format(
                        appointment_datetime
                    )
                )
        validated_params['appointment_datetime'] = validated_appointment_datetime

    if 'policy_number' in rqst_body:
        validated_params['policy_number'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "policy_number",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if 'resource_case_number' in rqst_body:
        validated_params['resource_case_number'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "resource_case_number",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if 'expedite_benefits_organization_contact_name' in rqst_body:
        validated_params['expedite_benefits_organization_contact_name'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "expedite_benefits_organization_contact_name",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if 'expedite_benefits_organization_contact_phone' in rqst_body:
        validated_params['expedite_benefits_organization_contact_phone'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "expedite_benefits_organization_contact_phone",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if 'customer_service_success' in rqst_body:
        validated_params['customer_service_success'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "customer_service_success",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if 'case_status' in rqst_body:
        validated_params['case_status'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "case_status",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )
        if not rqst_errors and not validated_params['case_status']:
            validated_params['case_status'] = 'Not Available'
def validate_modify_instance_rqst_params(rqst_params, rqst_errors):
    validated_params = {}

    consumer_instance = None
    rqst_consumer_id = clean_int_value_from_dict_object(
        rqst_params, "root", "Consumer Database ID", rqst_errors)
    validated_params['rqst_consumer_id'] = rqst_consumer_id
    if not rqst_errors:
        try:
            consumer_instance = PICConsumer.objects.get(id=rqst_consumer_id)
        except PICConsumer.DoesNotExist:
            rqst_errors.append(
                'Consumer database entry does not exist for the id: {}'.format(
                    rqst_consumer_id))
    validated_params['consumer_instance'] = consumer_instance

    if "Email" in rqst_params:
        rqst_consumer_email = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "Email",
            rqst_errors,
            empty_string_allowed=True)
        if rqst_consumer_email:
            try:
                validate_email(rqst_consumer_email)
            except forms.ValidationError:
                rqst_errors.append("{!s} must be a valid email address".format(
                    rqst_consumer_email))

        validated_params["rqst_consumer_email"] = rqst_consumer_email
    if "First Name" in rqst_params:
        rqst_consumer_f_name = clean_string_value_from_dict_object(
            rqst_params, "root", "First Name", rqst_errors)

        validated_params["rqst_consumer_f_name"] = rqst_consumer_f_name
    if "Middle Name" in rqst_params:
        rqst_consumer_m_name = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "Middle Name",
            rqst_errors,
            empty_string_allowed=True)

        validated_params["rqst_consumer_m_name"] = rqst_consumer_m_name
    if "Last Name" in rqst_params:
        rqst_consumer_l_name = clean_string_value_from_dict_object(
            rqst_params, "root", "Last Name", rqst_errors)

        validated_params["rqst_consumer_l_name"] = rqst_consumer_l_name
    if "Plan" in rqst_params:
        rqst_consumer_plan = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "Plan",
            rqst_errors,
            empty_string_allowed=True)

        validated_params["rqst_consumer_plan"] = rqst_consumer_plan
    rqst_consumer_met_nav_at = None
    if "Met Navigator At" in rqst_params:
        rqst_consumer_met_nav_at = clean_string_value_from_dict_object(
            rqst_params, "root", "Met Navigator At", rqst_errors)

        validated_params["rqst_consumer_met_nav_at"] = rqst_consumer_met_nav_at
    rqst_consumer_household_size = None
    if "Household Size" in rqst_params:
        rqst_consumer_household_size = clean_int_value_from_dict_object(
            rqst_params, "root", "Household Size", rqst_errors)

        validated_params[
            "rqst_consumer_household_size"] = rqst_consumer_household_size
    if "Phone Number" in rqst_params:
        rqst_consumer_phone = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "Phone Number",
            rqst_errors,
            empty_string_allowed=True)

        validated_params["rqst_consumer_phone"] = rqst_consumer_phone
    if "Preferred Language" in rqst_params:
        rqst_consumer_pref_lang = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "Preferred Language",
            rqst_errors,
            empty_string_allowed=True)
        validated_params["rqst_consumer_pref_lang"] = rqst_consumer_pref_lang
    if "Navigator Notes" in rqst_params:
        rqst_navigator_notes = clean_list_value_from_dict_object(
            rqst_params,
            "root",
            "Navigator Notes",
            rqst_errors,
            empty_list_allowed=True)

        validated_params["rqst_navigator_notes"] = rqst_navigator_notes
    if "Address Line 1" in rqst_params:
        rqst_address_line_1 = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "Address Line 1",
            rqst_errors,
            empty_string_allowed=True)

        validated_params["rqst_address_line_1"] = rqst_address_line_1
    if "Address Line 2" in rqst_params:
        rqst_address_line_2 = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "Address Line 2",
            rqst_errors,
            empty_string_allowed=True)
        if rqst_address_line_2 is None:
            rqst_address_line_2 = ''

        validated_params["rqst_address_line_2"] = rqst_address_line_2
    if "City" in rqst_params:
        rqst_city = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "City",
            rqst_errors,
            empty_string_allowed=True)

        validated_params["rqst_city"] = rqst_city
    if "State" in rqst_params:
        rqst_state = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "State",
            rqst_errors,
            empty_string_allowed=True)

        validated_params["rqst_state"] = rqst_state
    if "Zipcode" in rqst_params:
        rqst_zipcode = clean_string_value_from_dict_object(
            rqst_params,
            "root",
            "Zipcode",
            rqst_errors,
            empty_string_allowed=True)

        validated_params["rqst_zipcode"] = rqst_zipcode
    nav_instance = None
    if "Navigator Database ID" in rqst_params:
        rqst_nav_id = clean_int_value_from_dict_object(
            rqst_params, "root", "Navigator Database ID", rqst_errors)
        if rqst_nav_id and not rqst_errors:
            try:
                nav_instance = Navigators.objects.get(id=rqst_nav_id)
            except Navigators.DoesNotExist:
                rqst_errors.append(
                    'Staff database entry does not exist for the navigator id: {}'
                    .format(rqst_nav_id))

        validated_params["rqst_nav_id"] = rqst_nav_id
        validated_params["nav_instance"] = nav_instance
    rqst_date_met_nav = None
    if "date_met_nav" in rqst_params:
        date_met_nav_dict = clean_dict_value_from_dict_object(
            rqst_params,
            "root",
            "date_met_nav",
            rqst_errors,
            none_allowed=True)
        if date_met_nav_dict is not None:
            month = clean_int_value_from_dict_object(date_met_nav_dict,
                                                     "date_met_nav", "Month",
                                                     rqst_errors)
            if month:
                if month < 1 or month > 12:
                    rqst_errors.append(
                        "Month must be between 1 and 12 inclusive")

            day = clean_int_value_from_dict_object(date_met_nav_dict,
                                                   "date_met_nav", "Day",
                                                   rqst_errors)
            if day:
                if day < 1 or day > 31:
                    rqst_errors.append(
                        "Day must be between 1 and 31 inclusive")

            year = clean_int_value_from_dict_object(date_met_nav_dict,
                                                    "date_met_nav", "Year",
                                                    rqst_errors)
            if year:
                if year < 1 or year > 9999:
                    rqst_errors.append(
                        "Year must be between 1 and 9999 inclusive")

            if not rqst_errors:
                rqst_date_met_nav = datetime.date(year, month, day)

        validated_params["rqst_date_met_nav"] = rqst_date_met_nav
    if "cps_consumer" in rqst_params:
        rqst_cps_consumer = clean_bool_value_from_dict_object(
            rqst_params,
            "root",
            "cps_consumer",
            rqst_errors,
            no_key_allowed=True)

        validated_params["rqst_cps_consumer"] = rqst_cps_consumer
    if "cps_info" in rqst_params:
        rqst_cps_info_dict = clean_dict_value_from_dict_object(
            rqst_params, "root", "cps_info", rqst_errors, none_allowed=True)
        validated_cps_info_dict = None
        if consumer_instance and rqst_cps_info_dict:
            validated_cps_info_dict = validate_cps_info_params_for_modify_instance_rqst(
                rqst_cps_info_dict, consumer_instance,
                rqst_consumer_met_nav_at, rqst_consumer_household_size,
                nav_instance, rqst_errors)

        validated_params["rqst_cps_info_dict"] = rqst_cps_info_dict
        validated_params["validated_cps_info_dict"] = validated_cps_info_dict
    if "create_backup" in rqst_params:
        validated_params[
            'rqst_create_backup'] = clean_bool_value_from_dict_object(
                rqst_params,
                "root",
                "create_backup",
                rqst_errors,
                no_key_allowed=True)
    if len(validated_params) < 3:
        rqst_errors.append("No parameters to modify are given.")

    return validated_params
示例#20
0
def validate_create_or_update_row_params(rqst_body, validated_params,
                                         rqst_errors):
    consumer_metrics = clean_dict_value_from_dict_object(
        rqst_body, "root", "Consumer Metrics", rqst_errors)
    if not consumer_metrics:
        consumer_metrics = {}

    rqst_no_cps_consumers = clean_int_value_from_dict_object(
        consumer_metrics,
        "Consumer Metrics",
        "no_cps_consumers",
        rqst_errors,
        no_key_allowed=True)
    if rqst_no_cps_consumers is None:
        rqst_no_cps_consumers = 0

    rqst_metrics_location = clean_string_value_from_dict_object(
        consumer_metrics, "Consumer Metrics", "Location", rqst_errors)
    location_instance = None
    try:
        location_instance = NavMetricsLocation.objects.get(
            name=rqst_metrics_location)
    except NavMetricsLocation.DoesNotExist:
        rqst_errors.append(
            "Location instance does not exist for given location name: {!s}.".
            format(rqst_metrics_location))
    except NavMetricsLocation.MultipleObjectsReturned:
        rqst_errors.append(
            "Multiple location instances exist for given location name: {!s}".
            format(rqst_metrics_location))

    metrics_date_dict = clean_dict_value_from_dict_object(
        consumer_metrics, "Consumer Metrics", "Metrics Date", rqst_errors)
    metrics_date = None
    if metrics_date_dict is not None:
        month = clean_int_value_from_dict_object(metrics_date_dict,
                                                 "Metrics Date", "Month",
                                                 rqst_errors)
        if month:
            if month < 1 or month > 12:
                rqst_errors.append("Month must be between 1 and 12 inclusive")

        day = clean_int_value_from_dict_object(metrics_date_dict,
                                               "Metrics Date", "Day",
                                               rqst_errors)
        if day:
            if day < 1 or day > 31:
                rqst_errors.append("Day must be between 1 and 31 inclusive")

        year = clean_int_value_from_dict_object(metrics_date_dict,
                                                "Metrics Date", "Year",
                                                rqst_errors)
        if year:
            if year < 1 or year > 9999:
                rqst_errors.append("Year must be between 1 and 9999 inclusive")

        if not rqst_errors:
            metrics_date = datetime.date(year, month, day)

    rqst_plan_stats = clean_list_value_from_dict_object(
        consumer_metrics,
        "Consumer Metrics",
        "Plan Stats",
        rqst_errors,
        empty_list_allowed=True)
    unsaved_plan_stat_objs = []
    if rqst_plan_stats:
        for rqst_plan_stat_dict in rqst_plan_stats:
            planstatobject = PlanStat()
            planstatobject.plan_name = clean_string_value_from_dict_object(
                rqst_plan_stat_dict, "Plans Dict", "Issuer Name", rqst_errors)
            planstatobject.premium_type = clean_string_value_from_dict_object(
                rqst_plan_stat_dict, "Plans Dict", "Premium Type", rqst_errors)
            planstatobject.metal_level = clean_string_value_from_dict_object(
                rqst_plan_stat_dict, "Plans Dict", "Metal Level", rqst_errors)
            planstatobject.enrollments = clean_int_value_from_dict_object(
                rqst_plan_stat_dict, "Plans Dict", "Enrollments", rqst_errors)

            plan_name_valid = planstatobject.check_plan_choices()
            premium_type_valid = planstatobject.check_premium_choices()
            metal_level_valid = planstatobject.check_metal_choices()
            if not plan_name_valid:
                rqst_errors.append(
                    "Plan: {!s} is not part of member plans".format(
                        planstatobject.plan_name))
            if not premium_type_valid:
                rqst_errors.append(
                    "Premium Type: {!s} is not a valid premium type".format(
                        planstatobject.premium_type))
            if not metal_level_valid:
                rqst_errors.append(
                    "Metal: {!s} is not a valid metal level".format(
                        planstatobject.metal_level))

            if plan_name_valid and premium_type_valid and metal_level_valid:
                unsaved_plan_stat_objs.append(planstatobject)

    validated_params["rqst_usr_email"] = clean_string_value_from_dict_object(
        rqst_body, "root", "Email", rqst_errors)
    validated_params[
        "rqst_no_general_assis"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_general_assis",
            rqst_errors)
    validated_params[
        "rqst_no_plan_usage_assis"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_plan_usage_assis",
            rqst_errors)
    validated_params[
        "rqst_no_locating_provider_assis"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_locating_provider_assis",
            rqst_errors)
    validated_params[
        "rqst_no_billing_assis"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_billing_assis",
            rqst_errors)
    validated_params[
        "rqst_no_enroll_apps_started"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_enroll_apps_started",
            rqst_errors)
    validated_params["rqst_no_enroll_qhp"] = clean_int_value_from_dict_object(
        consumer_metrics, "Consumer Metrics", "no_enroll_qhp", rqst_errors)
    validated_params[
        "rqst_no_enroll_abe_chip"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_enroll_abe_chip",
            rqst_errors)
    validated_params["rqst_no_enroll_shop"] = clean_int_value_from_dict_object(
        consumer_metrics, "Consumer Metrics", "no_enroll_shop", rqst_errors)
    validated_params[
        "rqst_no_referrals_agents_brokers"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics",
            "no_referrals_agents_brokers", rqst_errors)
    validated_params[
        "rqst_no_referrals_ship_medicare"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_referrals_ship_medicare",
            rqst_errors)
    validated_params[
        "rqst_no_referrals_other_assis_programs"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics",
            "no_referrals_other_assis_programs", rqst_errors)
    validated_params[
        "rqst_no_referrals_issuers"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_referrals_issuers",
            rqst_errors)
    validated_params[
        "rqst_no_referrals_doi"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_referrals_doi",
            rqst_errors)
    validated_params[
        "rqst_no_mplace_tax_form_assis"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_mplace_tax_form_assis",
            rqst_errors)
    validated_params[
        "rqst_no_mplace_exempt_assis"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_mplace_exempt_assis",
            rqst_errors)
    validated_params[
        "rqst_no_qhp_abe_appeals"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_qhp_abe_appeals",
            rqst_errors)
    validated_params[
        "rqst_no_data_matching_mplace_issues"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics",
            "no_data_matching_mplace_issues", rqst_errors)
    validated_params[
        "rqst_no_sep_eligible"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_sep_eligible",
            rqst_errors)
    validated_params[
        "rqst_no_employ_spons_cov_issues"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_employ_spons_cov_issues",
            rqst_errors)
    validated_params[
        "rqst_no_aptc_csr_assis"] = clean_int_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "no_aptc_csr_assis",
            rqst_errors)
    validated_params[
        "rqst_cmplx_cases_mplace_issues"] = clean_string_value_from_dict_object(
            consumer_metrics,
            "Consumer Metrics",
            "cmplx_cases_mplace_issues",
            rqst_errors,
            empty_string_allowed=True)
    validated_params["rqst_no_cps_consumers"] = rqst_no_cps_consumers
    validated_params[
        "rqst_metrics_county"] = clean_string_value_from_dict_object(
            consumer_metrics, "Consumer Metrics", "County", rqst_errors)
    validated_params["location_instance_for_metrics"] = location_instance
    validated_params["unsaved_plan_stat_objs"] = unsaved_plan_stat_objs
    validated_params["metrics_date"] = metrics_date
def validate_cps_info_params_for_modify_instance_rqst(
        rqst_cps_info_params, consumer_instance, rqst_consumer_met_nav_at,
        rqst_consumer_household_size, rqst_nav_instance, rqst_errors):
    validated_params = {}

    if not rqst_consumer_met_nav_at:
        rqst_consumer_met_nav_at = consumer_instance.met_nav_at
    if not rqst_consumer_household_size:
        rqst_consumer_household_size = consumer_instance.household_size
    if not rqst_nav_instance:
        rqst_nav_instance = consumer_instance.navigator

    if "primary_dependent" in rqst_cps_info_params:
        rqst_primary_dependent_dict = clean_dict_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "primary_dependent", rqst_errors)
        primary_dependent_object = None
        if not rqst_errors:
            rqst_primary_dependent_database_id = clean_int_value_from_dict_object(
                rqst_primary_dependent_dict,
                "primary_dependent",
                "Consumer Database ID",
                rqst_errors,
                no_key_allowed=True)
            if not rqst_primary_dependent_database_id:
                found_primary_dependent_PICConsumer_entries = check_consumer_db_entries_for_dependent_info(
                    rqst_primary_dependent_dict, rqst_errors)
                rqst_force_create_consumer = clean_bool_value_from_dict_object(
                    rqst_primary_dependent_dict,
                    "root",
                    "force_create_consumer",
                    rqst_errors,
                    no_key_allowed=True)

                if found_primary_dependent_PICConsumer_entries and not rqst_force_create_consumer:
                    rqst_errors.append(
                        "The following PICConsumer object id(s) were found for given primary_dependent: {}. If you want to create a new consumer anyway, set cps_info['primary_dependent']['force_create_consumer'] to True."
                        .format(
                            json.dumps(
                                found_primary_dependent_PICConsumer_entries)))
                else:
                    try:
                        primary_dependent_object = PICConsumer(
                            first_name=rqst_primary_dependent_dict[
                                "first_name"],
                            last_name=rqst_primary_dependent_dict["last_name"],
                            met_nav_at=rqst_consumer_met_nav_at,
                            household_size=rqst_consumer_household_size,
                            navigator=rqst_nav_instance)
                    except IntegrityError:
                        rqst_errors.append(
                            "Error creating primary_dependent database entry for params: {!s}"
                            .format(json.dumps(rqst_primary_dependent_dict)))
            else:
                try:
                    primary_dependent_object = PICConsumer.objects.get(
                        id=rqst_primary_dependent_database_id)
                except PICConsumer.DoesNotExist:
                    rqst_errors.append(
                        "PICConsumer object does not exist for primary_dependent Database ID: {!s}"
                        .format(str(rqst_primary_dependent_database_id)))

        validated_params["primary_dependent_object"] = primary_dependent_object
    if "secondary_dependents" in rqst_cps_info_params:
        rqst_secondary_dependents = clean_list_value_from_dict_object(
            rqst_cps_info_params,
            "cps_info",
            "secondary_dependents",
            rqst_errors,
            no_key_allowed=True,
            empty_list_allowed=True)
        validated_params[
            "secondary_dependents_list"] = rqst_secondary_dependents

        secondary_dependents_list = []
        if rqst_secondary_dependents:
            for dependent_index, rqst_secondary_dependent_dict in enumerate(
                    rqst_secondary_dependents):
                secondary_dependent_object = None
                if not rqst_errors:
                    rqst_secondary_dependent_database_id = clean_int_value_from_dict_object(
                        rqst_secondary_dependent_dict,
                        "secondary_dependent",
                        "Consumer Database ID",
                        rqst_errors,
                        no_key_allowed=True)
                    if not rqst_secondary_dependent_database_id:
                        found_secondary_dependent_PICConsumer_entries = check_consumer_db_entries_for_dependent_info(
                            rqst_secondary_dependent_dict, rqst_errors)
                        rqst_force_create_consumer = clean_bool_value_from_dict_object(
                            rqst_secondary_dependent_dict,
                            "root",
                            "force_create_consumer",
                            rqst_errors,
                            no_key_allowed=True)

                        if found_secondary_dependent_PICConsumer_entries and not rqst_force_create_consumer:
                            rqst_errors.append(
                                "The following PICConsumer object id(s) were found for the secondary_dependent at index {}: {}. If you want to create a new consumer anyway, set cps_info['secondary_dependents'][index]['force_create_consumer'] to True."
                                .format(
                                    dependent_index,
                                    json.dumps(
                                        found_secondary_dependent_PICConsumer_entries
                                    )))
                        else:
                            try:
                                secondary_dependent_object = PICConsumer(
                                    first_name=rqst_secondary_dependent_dict[
                                        "first_name"],
                                    last_name=rqst_secondary_dependent_dict[
                                        "last_name"],
                                    met_nav_at=rqst_consumer_met_nav_at,
                                    household_size=rqst_consumer_household_size,
                                    navigator=rqst_nav_instance)
                            except IntegrityError:
                                rqst_errors.append(
                                    "Error creating secondary_dependent database entry for params: {!s}"
                                    .format(
                                        json.dumps(
                                            rqst_secondary_dependent_dict)))
                    else:
                        try:
                            secondary_dependent_object = PICConsumer.objects.get(
                                id=rqst_secondary_dependent_database_id)
                        except PICConsumer.DoesNotExist:
                            rqst_errors.append(
                                "PICConsumer object does not exist for secondary_dependent with index({!s}) and Database ID: {!s}"
                                .format(
                                    str(dependent_index),
                                    str(rqst_secondary_dependent_database_id)))

                secondary_dependents_list.append(secondary_dependent_object)

            validated_params[
                "secondary_dependents_list"] = secondary_dependents_list
    if "cps_location" in rqst_cps_info_params:
        rqst_cps_location = clean_string_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "cps_location", rqst_errors)

        validated_params["rqst_cps_location"] = rqst_cps_location
    if "apt_date" in rqst_cps_info_params:
        apt_date_dict = clean_dict_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "apt_date", rqst_errors)
        rqst_apt_date = None
        if apt_date_dict is not None:
            month = clean_int_value_from_dict_object(apt_date_dict,
                                                     "date_met_nav", "Month",
                                                     rqst_errors)
            if month:
                if month < 1 or month > 12:
                    rqst_errors.append(
                        "Month must be between 1 and 12 inclusive")

            day = clean_int_value_from_dict_object(apt_date_dict,
                                                   "date_met_nav", "Day",
                                                   rqst_errors)
            if day:
                if day < 1 or day > 31:
                    rqst_errors.append(
                        "Day must be between 1 and 31 inclusive")

            year = clean_int_value_from_dict_object(apt_date_dict,
                                                    "date_met_nav", "Year",
                                                    rqst_errors)
            if year:
                if year < 1 or year > 9999:
                    rqst_errors.append(
                        "Year must be between 1 and 9999 inclusive")

            if not rqst_errors:
                rqst_apt_date = datetime.date(year, month, day)

        validated_params["rqst_apt_date"] = rqst_apt_date
    if "target_list" in rqst_cps_info_params:
        rqst_target_list = clean_bool_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "target_list", rqst_errors)

        validated_params["rqst_target_list"] = rqst_target_list
    if "phone_apt" in rqst_cps_info_params:
        rqst_phone_apt = clean_bool_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "phone_apt", rqst_errors)

        validated_params["rqst_phone_apt"] = rqst_phone_apt
    if "case_mgmt_type" in rqst_cps_info_params:
        rqst_case_mgmt_type = clean_string_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "case_mgmt_type", rqst_errors)

        validated_params["rqst_case_mgmt_type"] = rqst_case_mgmt_type
    if "case_mgmt_status" in rqst_cps_info_params:
        rqst_case_mgmt_status = clean_string_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "case_mgmt_status", rqst_errors)

        validated_params["rqst_case_mgmt_status"] = rqst_case_mgmt_status
    if "app_type" in rqst_cps_info_params:
        rqst_app_type = clean_string_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "app_type", rqst_errors)

        validated_params["rqst_app_type"] = rqst_app_type
    if "app_status" in rqst_cps_info_params:
        rqst_app_status = clean_string_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "app_status", rqst_errors)

        validated_params["rqst_app_status"] = rqst_app_status
    if "point_of_origin" in rqst_cps_info_params:
        rqst_point_of_origin = clean_string_value_from_dict_object(
            rqst_cps_info_params, "cps_info", "point_of_origin", rqst_errors)

        validated_params["rqst_point_of_origin"] = rqst_point_of_origin

    return validated_params
示例#22
0
def validate_update_resume_row_params(resume_row_params, rqst_errors):
    validated_resume_row_params = {
        'id': clean_int_value_from_dict_object(
            resume_row_params,
            "update_resume_row",
            "id",
            rqst_errors
        )
    }

    if 'profile_description' in resume_row_params:
        validated_resume_row_params['profile_description'] = clean_string_value_from_dict_object(
            resume_row_params,
            "update_resume_row",
            "profile_description",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if "create_education_rows" in resume_row_params:
        education_row_params = clean_list_value_from_dict_object(
            resume_row_params,
            "update_resume_row",
            "create_education_rows",
            rqst_errors,
            empty_list_allowed=True
        )

        validated_education_row_params = []
        if education_row_params:
            for education_row_index, education_row_dict in enumerate(education_row_params):
                validated_education_row_dict = validate_create_education_row_params(
                    education_row_dict,
                    education_row_index,
                    rqst_errors
                )
                validated_education_row_params.append(validated_education_row_dict)

            validated_resume_row_params['create_education_rows'] = validated_education_row_params
    elif "update_education_rows" in resume_row_params:
        education_row_params = clean_list_value_from_dict_object(
            resume_row_params,
            "update_resume_row",
            "update_education_rows",
            rqst_errors
        )

        validated_education_row_params = []
        if education_row_params:
            for education_row_index, education_row_dict in enumerate(education_row_params):
                validated_education_row_dict = validate_update_education_row_params(
                    education_row_dict,
                    education_row_index,
                    rqst_errors
                )
                validated_education_row_params.append(validated_education_row_dict)

            validated_resume_row_params['update_education_rows'] = validated_education_row_params
    elif "delete_education_rows" in resume_row_params:
        education_row_params = clean_list_value_from_dict_object(
            resume_row_params,
            "update_resume_row",
            "delete_education_rows",
            rqst_errors
        )

        validated_education_row_params = []
        if education_row_params:
            for education_row_index, education_row_dict in enumerate(education_row_params):
                validated_education_row_dict = validate_delete_education_row_params(
                    education_row_dict,
                    education_row_index,
                    rqst_errors
                )
                validated_education_row_params.append(validated_education_row_dict)

            validated_resume_row_params['delete_education_rows'] = validated_education_row_params

    if "create_job_rows" in resume_row_params:
        job_row_params = clean_list_value_from_dict_object(
            resume_row_params,
            "update_resume_row",
            "create_job_rows",
            rqst_errors,
            empty_list_allowed=True
        )

        validated_job_row_params = []
        if job_row_params:
            for job_row_index, job_row_dict in enumerate(job_row_params):
                validated_job_row_dict = validate_create_job_row_params(
                    job_row_dict,
                    job_row_index,
                    rqst_errors
                )
                validated_job_row_params.append(validated_job_row_dict)

            validated_resume_row_params['create_job_rows'] = validated_job_row_params
    elif "update_job_rows" in resume_row_params:
        job_row_params = clean_list_value_from_dict_object(
            resume_row_params,
            "update_resume_row",
            "update_job_rows",
            rqst_errors
        )

        validated_job_row_params = []
        if job_row_params:
            for job_row_index, job_row_dict in enumerate(job_row_params):
                validated_job_row_dict = validate_update_job_row_params(
                    job_row_dict,
                    job_row_index,
                    rqst_errors
                )
                validated_job_row_params.append(validated_job_row_dict)

            validated_resume_row_params['update_job_rows'] = validated_job_row_params
    elif "delete_job_rows" in resume_row_params:
        job_row_params = clean_list_value_from_dict_object(
            resume_row_params,
            "update_resume_row",
            "delete_job_rows",
            rqst_errors
        )

        validated_job_row_params = []
        if job_row_params:
            for job_row_index, job_row_dict in enumerate(job_row_params):
                validated_job_row_dict = validate_delete_job_row_params(
                    job_row_dict,
                    job_row_index,
                    rqst_errors
                )
                validated_job_row_params.append(validated_job_row_dict)

            validated_resume_row_params['delete_job_rows'] = validated_job_row_params

    return validated_resume_row_params
示例#23
0
def validate_update_education_row_params(education_row_dict, education_row_index, rqst_errors):
    validated_education_row_dict = {
        'id': clean_int_value_from_dict_object(
            education_row_dict,
            "update_education_row[{}]".format(education_row_index),
            "id",
            rqst_errors
        )
    }

    if 'school' in education_row_dict:
        validated_education_row_dict['school'] = clean_string_value_from_dict_object(
            education_row_dict,
            "update_education_row[{}]".format(education_row_index),
            "school",
            rqst_errors,
        )
    if 'major' in education_row_dict:
        validated_education_row_dict['major'] = clean_string_value_from_dict_object(
            education_row_dict,
            "update_education_row[{}]".format(education_row_index),
            "major",
            rqst_errors,
            none_allowed=True
        )
    if 'degree_type' in education_row_dict:
        validated_education_row_dict['degree_type'] = clean_string_value_from_dict_object(
            education_row_dict,
            "update_education_row[{}]".format(education_row_index),
            "degree_type",
            rqst_errors,
            none_allowed=True
        )
        if not validated_education_row_dict['degree_type']:
            validated_education_row_dict['degree_type'] = "Not Available"
    if "start_year_datetime" in education_row_dict:
        start_year_datetime = clean_string_value_from_dict_object(education_row_dict, "root", "start_year_datetime", rqst_errors, none_allowed=True)
        validated_start_year_datetime = None
        if start_year_datetime:
            try:
                validated_start_year_datetime = datetime.datetime.strptime(start_year_datetime, "%Y").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'start_year_datetime must be a properly formatted datetime string in UTC, eg. YYYY. Value is : {}'.format(
                        start_year_datetime)
                )
        validated_education_row_dict['start_year_datetime'] = validated_start_year_datetime
    if "end_year_datetime" in education_row_dict:
        end_year_datetime = clean_string_value_from_dict_object(education_row_dict, "root", "end_year_datetime", rqst_errors, none_allowed=True)
        validated_end_year_datetime = None
        if end_year_datetime:
            try:
                validated_end_year_datetime = datetime.datetime.strptime(end_year_datetime, "%Y").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'end_year_datetime must be a properly formatted datetime string in UTC, eg. YYYY. Value is : {}'.format(
                        end_year_datetime)
                )
        validated_education_row_dict['end_year_datetime'] = validated_end_year_datetime

    return validated_education_row_dict
def validate_params_for_create_row(rqst_body, validated_params, rqst_errors):
    validated_params['company_name'] = clean_string_value_from_dict_object(
        rqst_body, "root", "company_name", rqst_errors)

    if "address_line_1" in rqst_body:
        address_line_1 = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "address_line_1",
            rqst_errors,
            empty_string_allowed=True)
        validated_params["address_line_1"] = address_line_1

    if "address_line_2" in rqst_body:
        address_line_2 = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "address_line_2",
            rqst_errors,
            empty_string_allowed=True)
        if address_line_2 is None:
            address_line_2 = ''
        validated_params["address_line_2"] = address_line_2

    if "city" in rqst_body:
        city = clean_string_value_from_dict_object(rqst_body,
                                                   "root",
                                                   "city",
                                                   rqst_errors,
                                                   empty_string_allowed=True)
        validated_params["city"] = city

    if "state_province" in rqst_body:
        state_province = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "state_province",
            rqst_errors,
            empty_string_allowed=True)
        validated_params["state_province"] = state_province

    if "zipcode" in rqst_body:
        zipcode = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "zipcode",
            rqst_errors,
            empty_string_allowed=True)
        validated_params["zipcode"] = zipcode

    estimated_monthly_caseload = clean_int_value_from_dict_object(
        rqst_body, 'root', "estimated_monthly_caseload", rqst_errors)
    if estimated_monthly_caseload:
        validator = MinValueValidator(0)
        try:
            validator(estimated_monthly_caseload)
        except ValidationError:
            rqst_errors.append(
                "estimated_monthly_caseload must be more than 0. Value is : {}"
                .format(estimated_monthly_caseload))
    validated_params["estimated_monthly_caseload"] = estimated_monthly_caseload

    contact_first_name = clean_string_value_from_dict_object(
        rqst_body, "root", "contact_first_name", rqst_errors)
    validated_params["contact_first_name"] = contact_first_name

    contact_last_name = clean_string_value_from_dict_object(
        rqst_body, "root", "contact_last_name", rqst_errors)
    validated_params["contact_last_name"] = contact_last_name

    contact_email = clean_string_value_from_dict_object(
        rqst_body, "root", "contact_email", rqst_errors)
    if contact_email is not None:
        try:
            validate_email(contact_email)
        except forms.ValidationError:
            rqst_errors.append(
                "contact_email must be a valid email address. Value is : {}".
                format(contact_email))
            contact_email = None
    validated_params['contact_email'] = contact_email

    contact_phone = clean_string_value_from_dict_object(
        rqst_body, "root", "contact_phone", rqst_errors)
    if contact_phone:
        validate_phone_number(contact_phone, rqst_errors)
    validated_params["contact_phone"] = contact_phone

    appointment_datetime = clean_string_value_from_dict_object(
        rqst_body, "root", "appointment_datetime", rqst_errors)
    validated_appointment_datetime = None
    if appointment_datetime:
        try:
            validated_appointment_datetime = datetime.datetime.strptime(
                appointment_datetime,
                "%Y-%m-%dT%H:%M:%S").replace(tzinfo=pytz.UTC)
        except ValueError:
            rqst_errors.append(
                'appointment_datetime must be a properly formatted datetime string in UTC, eg. YYYY-MM-DDTHH:MM:SS. Value is : {}'
                .format(appointment_datetime))
    validated_params['appointment_datetime'] = validated_appointment_datetime

    if "appointment_datetime_2" in rqst_body:
        appointment_datetime_2 = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "appointment_datetime_2",
            rqst_errors,
            none_allowed=True)
        validated_appointment_datetime_2 = None
        if appointment_datetime_2:
            try:
                validated_appointment_datetime_2 = datetime.datetime.strptime(
                    appointment_datetime_2,
                    "%Y-%m-%dT%H:%M:%S").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'appointment_datetime_2 must be a properly formatted datetime string in UTC, eg. YYYY-MM-DDTHH:MM:SS. Value is : {}'
                    .format(appointment_datetime_2))
        validated_params[
            'appointment_datetime_2'] = validated_appointment_datetime_2

    if "appointment_datetime_3" in rqst_body:
        appointment_datetime_3 = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "appointment_datetime_3",
            rqst_errors,
            none_allowed=True)
        validated_appointment_datetime_3 = None
        if appointment_datetime_3:
            try:
                validated_appointment_datetime_3 = datetime.datetime.strptime(
                    appointment_datetime_3,
                    "%Y-%m-%dT%H:%M:%S").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'appointment_datetime_3 must be a properly formatted datetime string in UTC, eg. YYYY-MM-DDTHH:MM:SS. Value is : {}'
                    .format(appointment_datetime_3))
        validated_params[
            'appointment_datetime_3'] = validated_appointment_datetime_3
示例#25
0
def validate_update_row_params(rqst_body, validated_params, rqst_errors):
    if "hospital_name" in rqst_body:
        validated_params["hospital_name"] = clean_string_value_from_dict_object(rqst_body, "root", "hospital_name", rqst_errors)

    if "monthly_visits" in rqst_body:
        validated_params["monthly_visits"] = clean_int_value_from_dict_object(rqst_body, "root", "monthly_visits", rqst_errors)
示例#26
0
def validate_create_row_params(rqst_body, validated_params, rqst_errors):
    validated_params['consumer_id'] = clean_int_value_from_dict_object(
        rqst_body,
        "root",
        "consumer_id",
        rqst_errors
    )

    validated_params['navigator_id'] = clean_int_value_from_dict_object(
        rqst_body,
        "root",
        "navigator_id",
        rqst_errors
    )

    if 'cm_client_id' in rqst_body:
        validated_params['cm_client_id'] = clean_int_value_from_dict_object(
            rqst_body,
            "root",
            "cm_client_id",
            rqst_errors,
            none_allowed=True
        )

    if 'notes' in rqst_body:
        validated_params['notes'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "notes",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if 'outcome' in rqst_body:
        validated_params['outcome'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "outcome",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )

    if 'status' in rqst_body:
        validated_params['status'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "status",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )
    if 'status' not in validated_params or not validated_params['status']:
        validated_params['status'] = "not available"

    if "datetime_contacted" in rqst_body:
        datetime_contacted = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "datetime_contacted",
            rqst_errors,
            none_allowed=True
        )
        validated_datetime_contacted = None
        if datetime_contacted:
            try:
                validated_datetime_contacted = datetime.datetime.strptime(datetime_contacted, "%Y-%m-%dT%H:%M:%S").replace(tzinfo=pytz.UTC)
            except ValueError:
                rqst_errors.append(
                    'datetime_contacted must be a properly formatted datetime string in UTC, eg. YYYY-MM-DDTHH:MM:SS. Value is : {}'.format(
                        datetime_contacted)
                )
        validated_params['datetime_contacted'] = validated_datetime_contacted

    if 'contact_type' in rqst_body:
        validated_params['contact_type'] = clean_string_value_from_dict_object(
            rqst_body,
            "root",
            "contact_type",
            rqst_errors,
            empty_string_allowed=True,
            none_allowed=True
        )
    if "contact_type" not in validated_params or not validated_params['contact_type']:
        validated_params['contact_type'] = "not available"