money_mover 0.0.9 → 0.0.10

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