instant_quote 1.6.1 → 1.7.2

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: c46963e390b87e65c4e598adb90a56dcbc9c8d4e9757816b0734af085cd098f6
4
- data.tar.gz: abfa20a481247b1ddc9aa3abbda4de1c858bbf3d50584ef9fe7ac904c1f6a948
3
+ metadata.gz: fd282d49087da4618690e4ce31b277d7ef3ebacb9c1ee08e7140f6e36b068dbe
4
+ data.tar.gz: fa1f1c9fd0a4ca9f89ae4f2a97b9d121b9be2988e7802fd02e4fb084d56a4052
5
5
  SHA512:
6
- metadata.gz: 3e42e95e2474ad1e4b04838ace2371e409ce811b4c129fe7cc65375536febd85816338b4b943f5c3133ad19d3643817d4a466fe636c843a1fb36e6542c2c63b5
7
- data.tar.gz: 26257fb6401faf86be51b53dc7c0ebacd787f8ebb187cdf330e646318cea2a113dd7131871eac972f28272b9f363dfeb209a6f2f3a330a080c526ac36c1c0c38
6
+ metadata.gz: f6eaccc382934116cf76da77089286a4ffc0b24d64592000828c2668fe5eaa9286a6f2a5b49ddad2f258c0b9de97d352ff6073990293b12be9592bf1108f5cab
7
+ data.tar.gz: 68b0407dee94857c6e1da32819dbafcffbd3a0ea278a58b1cb54d1ef4e1b75024deaf81914cb2bd4254c25477f63e5f6ce929e5d3d586dc2da77b93fd9a35f9d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- instant_quote (1.6.1)
4
+ instant_quote (1.7.2)
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,41 +23,41 @@ 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
54
  # Default for pre approval will be true, override it in the adapter class if needed.
55
- def get_preapproval(_params, _connection = nil)
55
+ def get_preapproval(_params, _connection)
56
56
  true
57
57
  end
58
58
 
59
59
  # Default for approval will be true, override it in the adapter class if needed.
60
- def get_approval(_application_id, _connection = nil)
60
+ def get_approval(_application_id, _connection)
61
61
  true
62
62
  end
63
63
  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
  }
@@ -25,16 +25,34 @@ module InstantQuote
25
25
  status_hash[:loanOptions].empty?
26
26
  end
27
27
 
28
- def amount
29
- option = status_hash[:loanOptions].first
28
+ def sweep
29
+ first_option[:sweep]
30
+ end
30
31
 
31
- amount_approved = option[:fundedAmount].to_f + option[:fee].to_f
32
+ def fee
33
+ fee = first_option[:fee].to_f
32
34
 
33
- Money.new(amount_approved * 100).format
35
+ Money.new(fee * 100).format
36
+ end
37
+
38
+ def loan_amount
39
+ amount = first_option[:loanAmount].to_f
40
+
41
+ Money.new(amount * 100).format
42
+ end
43
+
44
+ def funded_amount
45
+ amount = first_option[:fundedAmount].to_f
46
+
47
+ Money.new(amount * 100).format
34
48
  end
35
49
 
36
50
  private
37
51
 
52
+ def first_option
53
+ @first_option ||= status_hash[:loanOptions].find { |opt| opt[:fundedAmount].positive? }
54
+ end
55
+
38
56
  def status_hash
39
57
  data.presence || { loanOptions: [] }
40
58
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module InstantQuote
4
- VERSION = '1.6.1'
4
+ VERSION = '1.7.2'
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.1
4
+ version: 1.7.2
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