Class: InstantQuote::DecisionParsers::Optimum

Inherits:
InstantQuote::DecisionParser show all
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

#data

Instance Method Summary collapse

Methods inherited from InstantQuote::DecisionParser

#no_decision_possible?

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

#amountObject



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

Returns:

  • (Boolean)


46
47
48
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 46

def approved?
  status == STATUSES[:approved]
end

#credit_durationObject



68
69
70
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 68

def credit_duration
  0
end

#credit_intervalObject



72
73
74
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 72

def credit_interval
  decision[:trialPeriodMonths]
end

#declined?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 50

def declined?
  status == STATUSES[:declined]
end

#loan_started?Boolean

Returns:

  • (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

Returns:

  • (Boolean)


54
55
56
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 54

def manual_review?
  status == STATUSES[:referred]
end

#monthly_interest_rateObject



76
77
78
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 76

def monthly_interest_rate
  0
end

#pending?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 42

def pending?
  !STATUSES.value?(status)
end

#statusObject



80
81
82
# File 'lib/instant_quote/decision_parsers/optimum.rb', line 80

def status
  decision[:decision]
end