instant_quote 1.6.3 → 1.7.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: abc48d75b550699ee2f7ac657e783b7dfdf135cdeba67174fa555e2c8219eb67
4
- data.tar.gz: 16445d466e8628ad37c2f74efbb04669413164936e5c35602fd73a0bbce2d28a
3
+ metadata.gz: 15d07ba008846c863937a179a6d330833031b4291a595f30bf0701980a3c1bc0
4
+ data.tar.gz: 102ede083d49fc37c21ab29277e8eed0433fe4961dca1bffb9576c641b002894
5
5
  SHA512:
6
- metadata.gz: 0ed04a2b5e3502847768a7e1669e85e50fe332da5afa4191d76ed481b6cbf9e35d5954f294ec34933490d028357bf28bbac08386e71cbc628523df07e2e1c6a6
7
- data.tar.gz: fd6c81808739183be1d69f526014812b64c2fb8c15044c11b8b3fdd17ae6f1ede25a1365a27e64948b0a7e3c61ce0c884ebcc17c20fa4b98e0820bf1346fec27
6
+ metadata.gz: 00b3e2c8bb67d19a2e2be46bd261404bf0763a2876d1a32fbdd1bcbe8f584759485c3566d7c049a511958ae0a02c8cd4c7a6987647d822e1715e62196b8af315
7
+ data.tar.gz: 4c85a4d8f1d65aae349b62c2defb1d01e5342444ed2a345da25b3f7e27d0e77a37a08d947e9c2a743f4d80e9c511c2e77797385bad1bb2442cb8c8a08ccc71ea
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- instant_quote (1.6.3)
4
+ instant_quote (1.7.4)
5
5
  activesupport
6
6
  capital_on_tap
7
7
  iwoca
@@ -13,7 +13,7 @@ PATH
13
13
  GEM
14
14
  remote: https://rubygems.org/
15
15
  specs:
16
- activesupport (6.1.1)
16
+ activesupport (6.1.3)
17
17
  concurrent-ruby (~> 1.0, >= 1.0.2)
18
18
  i18n (>= 1.6, < 2)
19
19
  minitest (>= 5.1)
@@ -44,7 +44,7 @@ GEM
44
44
  faraday_middleware (1.0.0)
45
45
  faraday (~> 1.0)
46
46
  hashdiff (1.0.1)
47
- i18n (1.8.8)
47
+ i18n (1.8.9)
48
48
  concurrent-ruby (~> 1.0)
49
49
  iwoca (1.0.0)
50
50
  addressable
@@ -23,42 +23,42 @@ module InstantQuote
23
23
  new.get_link(connection)
24
24
  end
25
25
 
26
- def self.get_quote(params, connection = nil)
26
+ def self.get_quote(params, connection)
27
27
  new.get_quote(params, connection)
28
28
  end
29
29
 
30
- def self.get_status(application_id, connection = nil)
30
+ def self.get_status(application_id, connection)
31
31
  new.get_status(application_id, connection)
32
32
  end
33
33
 
34
- def self.get_preapproval(params, connection = nil)
34
+ def self.get_preapproval(params, connection)
35
35
  new.get_preapproval(params, connection)
36
36
  end
37
37
 
38
- def self.get_approval(application_id, connection = nil)
38
+ def self.get_approval(application_id, connection)
39
39
  new.get_approval(application_id, connection)
40
40
  end
41
41
 
42
- def get_link(_application_id, _connection = nil)
42
+ def get_link(_connection)
43
43
  raise NotImplementedError, "You must implement '#{self.class.name}#get_link'"
44
44
  end
45
45
 
46
- def get_quote(_params, _connection = nil)
46
+ def get_quote(_params, _connection)
47
47
  raise NotImplementedError, "You must implement '#{self.class.name}#get_quote'"
48
48
  end
49
49
 
50
- def get_status(_application_id, _connection = nil)
50
+ def get_status(_application_id, _connection)
51
51
  raise NotImplementedError, "You must implement '#{self.class.name}#get_status'"
52
52
  end
53
53
 
54
- # Default for pre approval will be true, override it in the adapter class if needed.
55
- def get_preapproval(_params, _connection = nil)
56
- true
54
+ # Default for pre approval will be success, override it in the adapter class if needed.
55
+ def get_preapproval(_params, _connection)
56
+ OpenStruct.new(success?: true)
57
57
  end
58
58
 
59
- # Default for approval will be true, override it in the adapter class if needed.
60
- def get_approval(_application_id, _connection = nil)
61
- true
59
+ # Default for approval will be success, override it in the adapter class if needed.
60
+ def get_approval(_application_id, _connection)
61
+ OpenStruct.new(success?: true)
62
62
  end
63
63
  end
64
64
  end
@@ -56,7 +56,7 @@ module InstantQuote
56
56
  end
57
57
 
58
58
  def get_approval
59
- adapter.get_approval(connection.external_id)
59
+ adapter.get_approval(connection.external_id, connection)
60
60
  end
61
61
 
62
62
  def additional_fields
@@ -70,7 +70,7 @@ module InstantQuote
70
70
  # rubocop:enable Layout/LineLength
71
71
 
72
72
  # Creates the quote with the information from instant connection
73
- def get_quote(params)
73
+ def get_quote(params, _connection)
74
74
  response = ::CapitalOnTap::Application.create(params)
75
75
 
76
76
  # CoT responses can be 200 OK but still have an error!
@@ -94,7 +94,7 @@ module InstantQuote
94
94
  # :links=>{:self=>'/api/v1/Applications/B247T62', :parent=>nil},
95
95
  # :metaData=>{}
96
96
  # }
97
- def get_status(application_id)
97
+ def get_status(application_id, _connection)
98
98
  response = ::CapitalOnTap::Application.status(application_id)
99
99
 
100
100
  raise_error(response) unless response.success?
@@ -58,7 +58,7 @@ module InstantQuote
58
58
  ]
59
59
 
60
60
  # Creates the iwoca customer and returns the state key from the response.
61
- def get_quote(params)
61
+ def get_quote(params, _connection)
62
62
  response = ::Iwoca::Quote.create_customer(params)
63
63
 
64
64
  return response.data[:state_key] if response.success?
@@ -67,7 +67,7 @@ module InstantQuote
67
67
  end
68
68
 
69
69
  # Get the current status for the created customer.
70
- def get_status(state_key)
70
+ def get_status(state_key, _connection)
71
71
  response = ::Iwoca::Quote.credit_facility_status(state_key)
72
72
 
73
73
  raise_error(response) unless response.success?
@@ -86,7 +86,7 @@ module InstantQuote
86
86
  raise_error(response)
87
87
  end
88
88
 
89
- def get_approval(state_key)
89
+ def get_approval(state_key, _connection)
90
90
  response = ::Iwoca::Quote.approval(state_key)
91
91
  response.success?
92
92
  end
@@ -96,7 +96,7 @@ module InstantQuote
96
96
  }
97
97
  ]
98
98
 
99
- def get_quote(params)
99
+ def get_quote(params, _connection)
100
100
  response = ::Optimum::Decision.create(params)
101
101
 
102
102
  return response.data[:opportunityId] if response.success?
@@ -104,7 +104,7 @@ module InstantQuote
104
104
  raise_error(response)
105
105
  end
106
106
 
107
- def get_status(application_id)
107
+ def get_status(application_id, _connection)
108
108
  response = ::Optimum::Decision.update(application_id)
109
109
 
110
110
  raise_error(response) unless response.success?
@@ -9,7 +9,7 @@ module InstantQuote
9
9
  additional_fields [
10
10
  {
11
11
  name: 'monthly_card_revenue',
12
- label: 'Avg. monthly revenue from card payments',
12
+ label: 'Avg. monthly card revenue',
13
13
  required: true,
14
14
  type: 'money'
15
15
  },
@@ -21,7 +21,7 @@ module InstantQuote
21
21
  },
22
22
  {
23
23
  name: 'applicant_consent',
24
- label: 'Yes, I give my consent for my data to be shared',
24
+ label: 'Yes, I give my consent for my data to be shared with YouLend',
25
25
  required: true,
26
26
  type: 'checkbox'
27
27
  }
@@ -18,18 +18,24 @@ module InstantQuote
18
18
  # }
19
19
  class Youlend < DecisionParser
20
20
  def approved?
21
- status_hash[:loanOptions].any?
21
+ status_hash[:loanOptions].any? && first_option
22
22
  end
23
23
 
24
24
  def declined?
25
- status_hash[:loanOptions].empty?
25
+ !approved?
26
26
  end
27
27
 
28
28
  def sweep
29
29
  first_option[:sweep]
30
30
  end
31
31
 
32
+ def status
33
+ approved? ? 'approved' : 'declined'
34
+ end
35
+
32
36
  def fee
37
+ return 0.0 unless first_option
38
+
33
39
  fee = first_option[:fee].to_f
34
40
 
35
41
  Money.new(fee * 100).format
@@ -47,6 +53,8 @@ module InstantQuote
47
53
  Money.new(amount * 100).format
48
54
  end
49
55
 
56
+ alias amount funded_amount
57
+
50
58
  private
51
59
 
52
60
  def first_option
@@ -54,7 +62,11 @@ module InstantQuote
54
62
  end
55
63
 
56
64
  def status_hash
57
- data.presence || { loanOptions: [] }
65
+ default = { loanOptions: [] }
66
+
67
+ return default unless data && !data.empty?
68
+
69
+ data
58
70
  end
59
71
  end
60
72
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module InstantQuote
4
- VERSION = '1.6.3'
4
+ VERSION = '1.7.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instant_quote
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: 1.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - rikas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-08 00:00:00.000000000 Z
11
+ date: 2021-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler