Class: InstantQuote::DecisionParsers::Youlend

Inherits:
InstantQuote::DecisionParser show all
Defined in:
lib/instant_quote/decision_parsers/youlend.rb

Overview

Example response:

Details response merged with optional offers { "details": { "leadSourceLendingPartnerId": "2487faad-24c3-40ed-8e63-f4551555116a", "onboardingState": "offersProvided", "onboardingStateReason": "", "organisationDetailsStepComplete": true, "paymentDataStepComplete": true, "offerStepComplete": false, "kycDocumentsStepComplete": true, "companyName": "SATURDAY LTD", "leadType": "Api", "signingDetails": { "eligibleForInstantSigning": false, "instantSigningDetails": null } }, "offers": { "leadId": "5c35a9f4-436e-47b9-a31c-b55f5881f8be", "previousAcceptedOffer": null, "providedOffers": [ { "offerId": "12cfda2b-cfb6-4d79-bd16-2979ed6a069a", "youWillGet": 6000, "youWillRepay": 7020, "currencyISOCode": "GBP", "sweep": 20, "minimumWeeklyRepayment": 150.28, "daysUntilRepayment": 218, "maturityDate": "2024-06-26T16:42:15.038Z" }, { "offerId": "2d93cb8b-7e3b-4c87-87cf-40e2f7e226e3", "youWillGet": 6500, "youWillRepay": 7735, "currencyISOCode": "GBP", "sweep": 20, "minimumWeeklyRepayment": 150.4, "daysUntilRepayment": 240, "maturityDate": "2024-07-29T16:42:15.038Z" }, { "offerId": "f2ef06ef-0c29-418c-ad93-d7abdee5994e", "youWillGet": 7000, "youWillRepay": 8470, "currencyISOCode": "GBP", "sweep": 20, "minimumWeeklyRepayment": 150.1, "daysUntilRepayment": 263, "maturityDate": "2024-09-02T16:42:15.038Z" } ], "acceptedOffer": null, "unsignedLoanDocument": null, "unsignedLoanDocumentDownloaded": false, "documentSigningId": "00000000-0000-0000-0000-000000000000", "sortCode": null, "accountNumber": null, "swift": null, "iban": null, "bankName": null, "confirmedCompanyAccount": false, "minFundingAmount": 0, "maxFundingAmount": 0 } }

Constant Summary collapse

APPROVED_STATES =
%w[offersProvided offerAccepted contractgenerated contractsigned]

Instance Attribute Summary

Attributes inherited from InstantQuote::DecisionParser

#data

Instance Method Summary collapse

Methods inherited from InstantQuote::DecisionParser

#initialize, #loan_started?, #manual_review?, #no_decision_possible?

Constructor Details

This class inherits a constructor from InstantQuote::DecisionParser

Instance Method Details

#approved?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 79

def approved?
  APPROVED_STATES.include?(status) && loan_offer.present?
end

#declined?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 83

def declined?
  !(approved? || incomplete? ||  || pending?)
end

#feeObject



117
118
119
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 117

def fee
  Money.new(raw_fee_amount * 100).format
end

#funded_amountObject Also known as: amount



113
114
115
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 113

def funded_amount
  Money.new(raw_funded_amount * 100).format
end

#incomplete?Boolean

Returns:

  • (Boolean)


95
96
97
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 95

def incomplete?
  status == 'stage1incomplete'
end

#loan_amountObject



109
110
111
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 109

def loan_amount
  Money.new(raw_loan_amount * 100).format
end

#offer_idObject



121
122
123
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 121

def offer_id
  loan_offer[:offerId]
end

#pending?Boolean

Returns:

  • (Boolean)


87
88
89
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 87

def pending?
  data.nil? || data.empty?
end

#submitted?Boolean

Returns:

  • (Boolean)


91
92
93
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 91

def 
  status == 'stage1submitted'
end

#sweepObject



99
100
101
102
103
# File 'lib/instant_quote/decision_parsers/youlend.rb', line 99

def sweep
  return '-' unless approved?

  loan_offer[:sweep]
end