from flask import request

import config
from crud.crud_bureau import get_state_code_number_experian


def get_request_params(bureau_name):
    request_params = {}

    if bureau_name == 'Equifax' or bureau_name == 'PAN':
        request_params["UserId"] = config.EQUIFAX_USER
        request_params["Password"] = config.EQUIFAX_PASS
        request_params["CustomerId"] = config.CustomerId
        request_params["MemberNumber"] = config.MemberNumber
        request_params["SecurityCode"] = config.SecurityCode
        request_params["ReportFormat"] = config.ReportFormat
        request_params["ProductVersion"] = config.ProductVersion
        request_params["ProductCode"] = config.ProductCode
        if bureau_name == 'PAN':
            request_params["ProductCode"] = "VID"
    else:
        request_params["UserId"] = config.EXPERIAN_USER
        request_params["Password"] = config.EXPERIAN_PASS

    request_params["FirstName"] = request.json.get('first_name').replace("+", " ").replace("%20", " ").strip()
    request_params["LastName"] = request.json.get('last_name').replace("+", " ").replace("%20", " ").strip()
    request_params["DOB"] = request.json.get('dob')
    request_params["PanCard"] = request.json['pan_card']
    request_params["Purpose"] = config.Purpose  # request.json['purpose']
    if bureau_name == 'PAN':
        request_params["Purpose"] = "V1"
    else:
        request_params["DOB"] = request.json.get('dob')
        request_params["Address"] = request.json.get('address').replace("+", " ").replace("%20", " ")
        if request.json.get('state').isnumeric():
            request_params["State"] = request.json.get('state')
        else:
            request_params['State'] = get_state_code_number_experian(request.json.get('state'))
        request_params["PostalCode"] = request.json.get('postal_code')
        request_params["MobileNumber"] = request.json.get('mobile_number')
        request_params["Purpose"] = config.Purpose  # request.json['purpose']
        if bureau_name == 'Experian':
            request_params["Gender"] = request.json.get('gender')
            request_params["City"] = request.json.get('city')
            request_params["InquiryReason"] = config.InquiryReason  # request.json['inquiry_reason']
            request_params["Purpose"] = config.FinancePurpose  # request.json['finance_purpose']
            request_params["LoanAmount"] = request.json.get('loan_amount')
            request_params["Score"] = config.Score  # request.json['score']
            if 'phone_number' in request.json:
                request_params["PhoneNumber"] = request.json.get('phone_number')
            else:
                request_params["PhoneNumber"] = request.json.get('mobile_number')

    return request_params
