Class: InstantQuote::DecisionParsers::Optimum
- Inherits:
-
InstantQuote::DecisionParser
- Object
- InstantQuote::DecisionParser
- InstantQuote::DecisionParsers::Optimum
- Defined in:
- lib/instant_quote/decision_parsers/optimum.rb
Overview
Example response:
{ decision:
decision: "approved",
trialPeriodMonths: 4, # trial period length
fundingLimit: 745000,
annualRenewalFee: 0,
badDebtProtection: 0.85,
cashAvailableWithinHours: 48,
discountFee: 3.35,
facility: "Factoring", # Factoring / Invoice Discounting / Confidential Invoice Discounting
prepayment: 80,
serviceFee: 1.14
, opportunityId: “01234567ABCDEFGH”, # the Optimum Finance opportunity ID (only supplied for successful applications that are not ‘quotation only’)
companyName: “COMPANY NAME LTD” # company name from the given company number - use this to verify correct company }
Constant Summary collapse
- STATUSES =
{ approved: 'approved', declined: 'declined', referred: 'referred' }.freeze
- LOAN_STATES =
{ started: 'Closed Won' }.freeze
Instance Attribute Summary
Attributes inherited from InstantQuote::DecisionParser
Instance Method Summary collapse
- #amount ⇒ Object
- #approved? ⇒ Boolean
- #credit_duration ⇒ Object
- #credit_interval ⇒ Object
- #declined? ⇒ Boolean
-
#initialize(data = {}) ⇒ Optimum
constructor
A new instance of Optimum.
- #loan_started? ⇒ Boolean
- #manual_review? ⇒ Boolean
- #monthly_interest_rate ⇒ Object
- #pending? ⇒ Boolean
- #status ⇒ Object
Methods inherited from InstantQuote::DecisionParser
Constructor Details
#initialize(data = {}) ⇒ Optimum
Returns a new instance of Optimum.
38 39 40 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 38 def initialize(data = {}) super end |
Instance Method Details
#amount ⇒ Object
62 63 64 65 66 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 62 def amount amount_approved = decision[:fundingLimit] || 0 Money.new(amount_approved * 100).format end |
#approved? ⇒ Boolean
46 47 48 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 46 def approved? status == STATUSES[:approved] end |
#credit_duration ⇒ Object
68 69 70 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 68 def credit_duration 0 end |
#credit_interval ⇒ Object
72 73 74 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 72 def credit_interval decision[:trialPeriodMonths] end |
#declined? ⇒ Boolean
50 51 52 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 50 def declined? status == STATUSES[:declined] end |
#loan_started? ⇒ Boolean
58 59 60 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 58 def loan_started? data[:status] == LOAN_STATES[:started] end |
#manual_review? ⇒ Boolean
54 55 56 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 54 def manual_review? status == STATUSES[:referred] end |
#monthly_interest_rate ⇒ Object
76 77 78 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 76 def monthly_interest_rate 0 end |
#pending? ⇒ Boolean
42 43 44 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 42 def pending? !STATUSES.value?(status) end |
#status ⇒ Object
80 81 82 |
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 80 def status decision[:decision] end |