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