Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions lib/bloomr/consumer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ def register_consumer(token, consumer_info = {})
zipcode: consumer_info['zipcode']
}.compact]

emails = {
emails = [{
email_address: consumer_info['email_address'],
primary: consumer_info['email_primary'],
type: consumer_info['email_type']
}.compact
}.compact]

name = {
first_name: consumer_info['first_name'],
Expand Down
40 changes: 20 additions & 20 deletions lib/bloomr/credit.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ module Bloomr
module Credit
def get_credit_data(token, order_id)
body = {
query: "query FullOrderReport($ORDER_ID: uuid!, $order_id: String!) { credit_data_order: credit_data_order_by_pk(order_id: $ORDER_ID) { order_date order_id order_sku_id bankruptcies { current_disposition current_disposition_date date_filed date_reported disposition_date id industry_id order_id industry { category id name } } collections { account { account_number creditor { industry { category id name } address bureau email id industry_id name phone website } creditor_id date_closed date_opened id name type type_description } account_id credit_data_id current_balance custumer_number disputed id industry_code original_amount } consumer_id credit_scores { credit_data_id id model score_reasons { id narrative score_id } value } inquiries { credit_data_id date id industry_id inquirer_name industry { category id name } } mla_statuses { id order_id referral_contact_number regulated_identifier exist covered_borrower_status } ofac_statuses { reference order_id issue_source id exist } tradelines { account { account_number creditor { industry { category id name } address bureau email id industry_id name phone website } creditor_id date_closed date_opened id name type type_description } account_id account_rating credit_data_id credit_limit current_balance date_effective delinquency_date delinquency_earliest high_credit is_active late_30_days_total late_60_days_total late_90_days_total max_delinquency months_reviewed_count most_recent_payment_amount most_recent_payment_date past_due payment_pattern_start_date scheduled_monthly_payment payment_snapshots { id occurrence_date payment_status tradeline_id } } } tradeline_attributes: get_tradeline_attributes_by_order_id(args: {id: $order_id}) { total_tradelines open_tradelines tradeline_open_last_3_months tradeline_open_last_6_months tradeline_open_last_9_months tradeline_open_last_12_months months_oldest_tradeline_opened months_recent_tradeline_opened total_payment_obligation_open_tradelines months_recent_delinquency total_outstanding_balance_open_tradelines order_id } revolving_attributes: get_revolving_attributes_by_order_id(args: {id: $order_id}) { active_revolving_open_ended_tradelines_balance_opened_last_12_m active_revolving_open_ended_tradelines_balance_opened_last_24_m average_revolving_open_ended_tradeline_balance maximum_bank_card_utilization months_oldest_revolving_tradeline_opened months_recent_revolving_tradeline_opened months_recent_tradeline_revolving_delinquency open_revolving_tradelines revolving_rate revolving_tradelines_opened_last_6_months total_outstanding_balance_open_revolving_tradelines total_revolving_tradelines order_id } mortgage_attributes: get_mortgage_attributes_by_order_id(args: {id: $order_id}) { active_mortgage_tradelines_balance months_oldest_mortgage_tradeline_opened months_recent_mortgage_tradeline_delinquency months_recent_mortgage_tradeline_opened mortgage_tradelines_opened_last_6_months open_mortgage_tradelines outstanding_balance_open_mortgage_tradeline total_monthly_payment_obligation_for_open_mortgage_tradelines total_mortgage_tradelines order_id } auto_attributes: get_auto_attributes_by_order_id(args: {id: $order_id}) { auto_tradelines_opened_last_6_months months_oldest_auto_tradeline_opened months_recent_auto_tradeline_delinquency months_recent_auto_tradeline_opened open_autotradelines outstanding_balance_open_auto_tradeline total_auto_tradelines total_monthly_payment_obligation_for_open_auto_tradelines order_id } unsecured_installment_attributes: get_unsecured_installment_attributes_by_order_id(args: {id: $order_id}) { active_installment_tradelines active_installment_tradelines_opened_last_3_months months_oldest_unsecured_installment_tradelines_opened months_recent_unsecured_installment_tradeline_delinquency months_recent_unsecured_installment_tradelines_opened open_unsecured_installment_tradelines outstanding_balance_open_unsecured_installment_tradelines total_monthly_payment_obligation_for_open_unsecured_installment total_unsecured_installment_tradelines unsecured_installment_tradelines_opened_6_months order_id } student_loans_attributes: get_student_loans_attributes_by_order_id(args: {id: $order_id}) { months_oldest_student_loan_tradelines_opened months_recent_student_loan_tradelines_delinquency months_recent_student_loan_tradelines_opened open_student_loan_tradelines outstanding_balance_open_student_loan_tradelines student_loan_monthly_payment student_loan_tradelines_opened_last_6_months student_loans_deferment total_student_loan_tradelines order_id } delinquency_attributes: get_delinquency_attributes_by_order_id(args: {id: $order_id}) { tradelines_currently_dq30 tradelines_currently_dq60 order_id } specialized_attributes: get_specialized_attributes_by_order_id(args: {id: $order_id}) { bankruptcies foreclosures inquiries_last_6_months inquiries_on_file months_recent_bankruptcy months_recent_public_record months_recent_third_party_collection mortgage_trade_highest_high_credit non_medical_collections non_mortgage_non_inquiries_last_6_months percent_high_revolving_trade_utilization percent_opened_trades_last_24_months percent_satisfactory_trades_last_24_months tradeline_dti tradeline_ndi order_id } worst_attributes: get_worst_attributes_by_order_id(args: {id: $order_id}) { worst_rating_all_auto_tradelines_last_12_months worst_rating_all_mortgage_tradelines_last_12_months worst_rating_all_revolving_tradelines_last_12_months worst_rating_all_student_loan_tradelines_last_12_months worst_rating_all_unsecured_tradelines_last_12_months worst_rating_all_tradelines_last_12_months order_id } }",
variables: { ORDER_ID: "#{order_id}", order_id: "#{order_id}" }
}

headers = {
Expand Down Expand Up @@ -42,12 +40,14 @@ def order_credit(token, consumer_id, portfolio_id, sku)
'Authorization' => "Bearer #{token}"
}

request(
response = request(
"/v2/data-access/orders",
:post,
body,
headers
)

response[:data][:id]
end

def get_decision(credit_data)
Expand Down Expand Up @@ -81,47 +81,47 @@ def get_decision(credit_data)

def parse_credit_scores(credit_scores)
credit_scores.map do |data|
score_reasons = data['score_reasons']
model = data['model']
value = data['value']
id = data['id']
credit_data_id = data['credit_data_id']
score_reasons = data[:score_reasons]
model = data[:model]
value = data[:value]
id = data[:id]
credit_data_id = data[:credit_data_id]

score_reasons.map do |reason|
{
model: model,
value: value,
id: id,
credit_data_id: credit_data_id,
score_id: reason['id'],
reason_description: reason['reason_description']
score_id: reason[:id],
reason_description: reason[:reason_description]
}
end
end
end

def parse_credit_data_order(credit_data_order)
data = {
order_date: credit_data_order['order_date'],
order_id: credit_data_order['order_id'],
order_sku_id: credit_data_order['order_sku_id'],
consumer_id: credit_data_order['consumer_id']
order_date: credit_data_order[:order_date],
order_id: credit_data_order[:order_id],
order_sku_id: credit_data_order[:order_sku_id],
consumer_id: credit_data_order[:consumer_id]
}
end

def parse_all_content(report)
# Parse all attributes
attributes = report.reject { |key, _| key == "credit_data_order" }
.values.flatten
.map { |row| row['order_id'] }
.map { |row| row[:order_id] }
# Credit_data_order
credit_data_order = report["credit_data_order"]
credit_data_order = report[:credit_data_order]

credit_data = parse_credit_data_order(credit_data_order)
credit_scores = parse_credit_scores(credit_data_order["credit_scores"])
mla_statuses = credit_data_order["mla_statuses"]
ofac_statuses = credit_data_order["ofac_statuses"]
tradelines = credit_data_order["tradelines"]
credit_scores = parse_credit_scores(credit_data_order[:credit_scores])
mla_statuses = credit_data_order[:mla_statuses]
ofac_statuses = credit_data_order[:ofac_statuses]
tradelines = credit_data_order[:tradelines]

return {
attributes:,
Expand Down