money_mover 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94005ee617ac9b7c5e3d6c1b723bd276b88d5fed
4
- data.tar.gz: a6e5ef2f8e0df650eada4c03510ee3a68e26586e
3
+ metadata.gz: 010437904cafb2ca6c8793b9cf1a6f6f4544e785
4
+ data.tar.gz: 8a82210f6a88a6753fcd907e6c2e453a08bac09c
5
5
  SHA512:
6
- metadata.gz: 278f71f8e0c30afc4df693724ac388e50d4e12efa8d5df113c1065b3e2a862146cdc8780c121cfb49495b72159bbebc4b48bf6a981e46d0250f0a040de796579
7
- data.tar.gz: feaf2306347f47b834da465e2816054df44403ab379e28f51b8f1d4a03b1ace0fb78e6982e70597bf1e7851b24b19cd558f2c1360de4dafadf11f60a53e0efab
6
+ metadata.gz: e294712b6bb300f17c4fcdf83c1bba845ca0502269b25ed8e035cd73b12222105eddfe3b905606316fbc0cf3265af55f1acf7d679f82a611c5e409398a9128cb
7
+ data.tar.gz: 57c09bfbb5845d1eaa039edc0bbffec11d108ecdb6ba94f4d1bc2ff9d16e4a07cc81b67e2cd54325c44ed5b80cccdb7291f5964d21de06c3a57d351d834c740d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- money_mover (0.0.8)
4
+ money_mover (0.0.9)
5
5
  activemodel (>= 4.0, < 5.1)
6
6
  activesupport (>= 4.0, < 5.1)
7
7
  faraday (~> 0.9)
@@ -38,6 +38,26 @@ module MoneyMover
38
38
  end
39
39
  end
40
40
 
41
+ def save
42
+ return false unless valid?
43
+
44
+ if @id
45
+ response = @client.post self.class.fetch_endpoint(@id), create_params
46
+ add_errors_from response unless response.success?
47
+ else
48
+ response = @client.post create_endpoint, create_params
49
+
50
+ if response.success?
51
+ @resource_location = response.resource_location
52
+ @id = response.resource_id
53
+ else
54
+ add_errors_from response
55
+ end
56
+ end
57
+
58
+ errors.empty?
59
+ end
60
+
41
61
  private
42
62
 
43
63
  # dwolla doesnt accept urls without a scheme
@@ -1,3 +1,3 @@
1
1
  module MoneyMover
2
- VERSION = '0.0.9'
2
+ VERSION = '0.0.10'
3
3
  end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe MoneyMover::Dwolla::UnverifiedCustomer do
4
+ let(:customer_token) { '9481924a-6795-4e7a-b436-a7a48a4141ca' }
5
+ let(:firstName) { 'first name' }
6
+ let(:lastName) { 'last name' }
7
+ let(:email) { 'some@example.com' }
8
+ let(:ipAddress) { '127.0.0.1' }
9
+
10
+ let(:attrs) {{
11
+ id: customer_token,
12
+ firstName: firstName,
13
+ lastName: lastName,
14
+ email: email,
15
+ ipAddress: ipAddress
16
+ }}
17
+
18
+ subject { described_class.new attrs }
19
+
20
+ let(:update_customer_params) {{
21
+ firstName: firstName,
22
+ lastName: lastName,
23
+ email: email,
24
+ ipAddress: ipAddress,
25
+ type: 'unverified'
26
+ }}
27
+
28
+ before do
29
+ dwolla_helper.stub_update_customer_request customer_token, update_customer_params, update_response
30
+ end
31
+
32
+ describe '#save' do
33
+ context 'success' do
34
+ let(:update_response) do
35
+ {
36
+ status: 200,
37
+ body: ""
38
+ }
39
+ end
40
+
41
+ it 'creates new customer in dwolla' do
42
+ expect(subject.save).to eq(true)
43
+ end
44
+ end
45
+
46
+ context 'fail' do
47
+ let(:update_response) { dwolla_helper.resource_create_error_response error_response }
48
+
49
+ let(:error_response) {{
50
+ code: "ValidationError",
51
+ message: "Validation error(s) present. See embedded errors list for more details.",
52
+ _embedded: {
53
+ errors: [
54
+ { code: "Duplicate", message: "A customer with the specified email already exists.", path: "/email"
55
+ }
56
+ ]
57
+ }
58
+ }}
59
+
60
+ it 'returns errors' do
61
+ expect(subject.save).to eq(false)
62
+ expect(subject.errors[:email]).to eq(['A customer with the specified email already exists.'])
63
+ expect(subject.id).to eq(customer_token)
64
+ expect(subject.resource_location).to be_nil
65
+ end
66
+ end
67
+ end
68
+ end
@@ -34,7 +34,7 @@ class TestConfigProvider
34
34
  end
35
35
 
36
36
  def account_token_provider
37
- TestDwollaTokenProvider
37
+ TestDwollaTokenProvider.new
38
38
  end
39
39
  end
40
40
 
@@ -187,6 +187,10 @@ class DwollaHelper
187
187
  stub_post_request customers_endpoint, params, response
188
188
  end
189
189
 
190
+ def stub_update_customer_request(customer_token, params, response)
191
+ stub_post_request customer_endpoint(customer_token), params, response
192
+ end
193
+
190
194
  def stub_create_customer_funding_source_request(customer_token, params, response)
191
195
  stub_post_request customer_funding_sources_endpoint(customer_token), params, response
192
196
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: money_mover
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Errante
@@ -213,6 +213,7 @@ files:
213
213
  - spec/integration/money_mover/dwolla/customers/create_spec.rb
214
214
  - spec/integration/money_mover/dwolla/customers/find_spec.rb
215
215
  - spec/integration/money_mover/dwolla/customers/funding-sources/create_spec.rb
216
+ - spec/integration/money_mover/dwolla/customers/update_spec.rb
216
217
  - spec/integration/money_mover/dwolla/documents/create_spec.rb
217
218
  - spec/integration/money_mover/dwolla/funding-sources/micro-deposits/initiation_spec.rb
218
219
  - spec/integration/money_mover/dwolla/funding-sources/micro-deposits/verification_spec.rb
@@ -260,6 +261,7 @@ test_files:
260
261
  - spec/integration/money_mover/dwolla/customers/create_spec.rb
261
262
  - spec/integration/money_mover/dwolla/customers/find_spec.rb
262
263
  - spec/integration/money_mover/dwolla/customers/funding-sources/create_spec.rb
264
+ - spec/integration/money_mover/dwolla/customers/update_spec.rb
263
265
  - spec/integration/money_mover/dwolla/documents/create_spec.rb
264
266
  - spec/integration/money_mover/dwolla/funding-sources/micro-deposits/initiation_spec.rb
265
267
  - spec/integration/money_mover/dwolla/funding-sources/micro-deposits/verification_spec.rb