synapsis 0.0.10 → 0.0.11
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 +4 -4
- data/.gitignore +1 -0
- data/lib/synapsis/bank.rb +17 -3
- data/lib/synapsis/deposit.rb +2 -2
- data/lib/synapsis/order.rb +0 -1
- data/lib/synapsis/user.rb +9 -1
- data/lib/synapsis/version.rb +1 -1
- data/lib/synapsis/withdrawal.rb +0 -1
- data/lib/synapsis.rb +0 -2
- data/spec/spec_helper.rb +0 -1
- data/spec/support/routing_number_helpers.rb +7 -0
- data/spec/synapsis/bank_spec.rb +35 -1
- data/spec/synapsis/card_spec.rb +5 -2
- data/spec/synapsis/deposit_spec.rb +5 -2
- data/spec/synapsis/mass_pay_spec.rb +2 -2
- metadata +5 -9
- data/lib/synapsis/authentication.rb +0 -25
- data/lib/synapsis/utilities.rb +0 -30
- data/spec/support/json_helpers.rb +0 -6
- data/spec/synapsis/authentication_spec.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88f25f31c347b1d5e1315a53f5f8b988bf36300d
|
4
|
+
data.tar.gz: e057d3fa66b160ec82b589cdc38375a1d5810d45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9236da172a713aa0c8aa9b70db0f711ef28230fa9d8ea2368010ade8239410534991af783c2dbac156db68d46b11dcee81b3ac2049e55eb1037d5012d982510
|
7
|
+
data.tar.gz: c85014c085f84d63811d1d286b9612f84077c7b92f696c11636f34b4350b435a053040bf3531eba70970b1cf093440de16a3fd4ac82f7d4c62e90646277bdda8
|
data/.gitignore
CHANGED
data/lib/synapsis/bank.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
class Synapsis::Bank < Synapsis::APIResource
|
2
|
-
include Synapsis::Utilities
|
3
2
|
extend Synapsis::APIOperations::Create
|
4
3
|
extend Synapsis::APIOperations::View
|
5
4
|
|
@@ -38,7 +37,6 @@ class Synapsis::Bank < Synapsis::APIResource
|
|
38
37
|
return_response(added_bank)
|
39
38
|
end
|
40
39
|
|
41
|
-
|
42
40
|
def self.link(params)
|
43
41
|
partially_linked_bank = request(:post, bank_link_url, params)
|
44
42
|
parsed_partially_linked_bank = parse_as_synapse_resource(partially_linked_bank)
|
@@ -78,6 +76,18 @@ class Synapsis::Bank < Synapsis::APIResource
|
|
78
76
|
return_response(response)
|
79
77
|
end
|
80
78
|
|
79
|
+
# By default, the first added bank account is the primary one. If you add another bank it will not be set as the primary one unless it was deleted.
|
80
|
+
# When a bank account is deleted, if it was the primary bank account, the next bank account chronologically added will be set as the primary one.
|
81
|
+
def self.set_as_primary(bank_id:, oauth_consumer_key:)
|
82
|
+
params = {
|
83
|
+
bank_id: bank_id,
|
84
|
+
oauth_consumer_key: oauth_consumer_key
|
85
|
+
}
|
86
|
+
|
87
|
+
response = request(:post, set_bank_as_primary_url, params)
|
88
|
+
return_response(response)
|
89
|
+
end
|
90
|
+
|
81
91
|
private
|
82
92
|
|
83
93
|
def self.bank_link_url
|
@@ -88,7 +98,11 @@ class Synapsis::Bank < Synapsis::APIResource
|
|
88
98
|
"#{API_V2_PATH}bank/mfa/?is_dev=yes"
|
89
99
|
end
|
90
100
|
|
101
|
+
def self.set_bank_as_primary_url
|
102
|
+
"#{API_V2_PATH}bank/setprimary"
|
103
|
+
end
|
104
|
+
|
91
105
|
def self.bank_delete_url
|
92
|
-
"#{API_V2_PATH}bank/delete
|
106
|
+
"#{API_V2_PATH}bank/delete"
|
93
107
|
end
|
94
108
|
end
|
data/lib/synapsis/deposit.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
class Synapsis::Deposit < Synapsis::APIResource
|
2
|
-
include Synapsis::Utilities
|
3
2
|
extend Synapsis::APIOperations::Create
|
4
3
|
|
4
|
+
# amount, bank_id, oauth_consumer_key
|
5
|
+
# amount must be supplied using a string
|
5
6
|
def self.create(params)
|
6
7
|
response = create_request(params)
|
7
|
-
|
8
8
|
return_response(response)
|
9
9
|
end
|
10
10
|
end
|
data/lib/synapsis/order.rb
CHANGED
data/lib/synapsis/user.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
class Synapsis::User < Synapsis::APIResource
|
2
|
-
include Synapsis::Utilities
|
3
2
|
extend Synapsis::APIOperations::Create
|
4
3
|
extend Synapsis::APIOperations::Edit
|
5
4
|
extend Synapsis::APIOperations::View
|
@@ -19,6 +18,11 @@ class Synapsis::User < Synapsis::APIResource
|
|
19
18
|
return_response(response)
|
20
19
|
end
|
21
20
|
|
21
|
+
def self.refresh(params)
|
22
|
+
response = request(:post, refresh_url, params.merge(client_credentials))
|
23
|
+
return_response(response)
|
24
|
+
end
|
25
|
+
|
22
26
|
def self.view_linked_banks(oauth_token)
|
23
27
|
Synapsis::Bank.view_linked_banks(oauth_token)
|
24
28
|
end
|
@@ -35,5 +39,9 @@ class Synapsis::User < Synapsis::APIResource
|
|
35
39
|
def self.create_url
|
36
40
|
"#{API_V2_PATH}user/create/"
|
37
41
|
end
|
42
|
+
|
43
|
+
def self.refresh_url
|
44
|
+
"#{API_V2_PATH}user/refresh"
|
45
|
+
end
|
38
46
|
end
|
39
47
|
|
data/lib/synapsis/version.rb
CHANGED
data/lib/synapsis/withdrawal.rb
CHANGED
data/lib/synapsis.rb
CHANGED
@@ -9,12 +9,10 @@ end
|
|
9
9
|
|
10
10
|
# Internal dependencies
|
11
11
|
require "synapsis/version"
|
12
|
-
require "synapsis/utilities"
|
13
12
|
require "synapsis/api_resource"
|
14
13
|
require "synapsis/api_operations/create"
|
15
14
|
require "synapsis/api_operations/edit"
|
16
15
|
require "synapsis/api_operations/view"
|
17
|
-
require "synapsis/authentication"
|
18
16
|
require "synapsis/user"
|
19
17
|
require "synapsis/bank"
|
20
18
|
require "synapsis/withdrawal"
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,7 @@
|
|
1
|
+
def get_random_routing_number
|
2
|
+
# Taken from: https://www.usbank.com/checking/aba-routing-number.html, we cannot just generate random numbers as the tests have a tendency to fail
|
3
|
+
sample_routing_numbers = ['122105155', '082000549', '121122676', '122235821', '102101645', '102000021', '123103729']
|
4
|
+
|
5
|
+
sample_routing_numbers.sample
|
6
|
+
end
|
7
|
+
|
data/spec/synapsis/bank_spec.rb
CHANGED
@@ -11,7 +11,7 @@ RSpec.describe Synapsis::Bank do
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
context '
|
14
|
+
context '.add/#remove' do
|
15
15
|
it 'adds and removes a bank account' do
|
16
16
|
random_persons_access_token = 'dcd234d9d9fb55ad9711c4c41e254868ef3768d4'
|
17
17
|
|
@@ -61,4 +61,38 @@ RSpec.describe Synapsis::Bank do
|
|
61
61
|
expect { Synapsis::Bank.add(bank_params) }.to raise_error(Synapsis::Error).with_message('Because of security reasons you can only add a bank account that belongs to you and is in your name.')
|
62
62
|
end
|
63
63
|
end
|
64
|
+
|
65
|
+
context '.set_primary' do
|
66
|
+
context 'happy path' do
|
67
|
+
it 'sets the bank as a primary bank' do
|
68
|
+
user_params = {
|
69
|
+
email: Faker::Internet.email,
|
70
|
+
fullname: Faker::Name.name,
|
71
|
+
phonenumber: Faker::PhoneNumber.phone_number,
|
72
|
+
password: '5ourcep4d',
|
73
|
+
ip_address: '8.8.8.8'
|
74
|
+
}
|
75
|
+
|
76
|
+
new_user_response = Synapsis::User.create(user_params)
|
77
|
+
|
78
|
+
bank_params = {
|
79
|
+
fullname: user_params[:fullname],
|
80
|
+
account_num: '1111111112',
|
81
|
+
routing_num: '121000358',
|
82
|
+
nickname: 'Sourcepad Bank',
|
83
|
+
oauth_consumer_key: new_user_response.access_token,
|
84
|
+
account_type: Synapsis::Bank::AccountType::CHECKING,
|
85
|
+
account_class: Synapsis::Bank::AccountClass::PERSONAL
|
86
|
+
}
|
87
|
+
|
88
|
+
first_bank_response = Synapsis::Bank.add(bank_params)
|
89
|
+
second_bank_response = Synapsis::Bank.add(bank_params)
|
90
|
+
third_bank_response = Synapsis::Bank.add(bank_params)
|
91
|
+
|
92
|
+
set_bank_primary_response = Synapsis::Bank.set_as_primary(bank_id: second_bank_response.bank.id, oauth_consumer_key: new_user_response.access_token)
|
93
|
+
|
94
|
+
expect(set_bank_primary_response.success).to be_truthy
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
64
98
|
end
|
data/spec/synapsis/card_spec.rb
CHANGED
@@ -48,7 +48,7 @@ RSpec.describe Synapsis::Card do
|
|
48
48
|
id: 483,
|
49
49
|
legal_name: Faker::Name.name,
|
50
50
|
account_number: "11111111#{rand(1..9)}#{rand(1..9)}",
|
51
|
-
routing_number:
|
51
|
+
routing_number: get_random_routing_number,
|
52
52
|
account_class: rand(1..2),
|
53
53
|
account_type: rand(1..2)
|
54
54
|
}}
|
@@ -76,7 +76,10 @@ RSpec.describe Synapsis::Card do
|
|
76
76
|
expect { Synapsis::Card.edit(edit_card_params.merge(id: 5)) }.to raise_error(Synapsis::Error).with_message('Card not found')
|
77
77
|
|
78
78
|
# Wrong account class
|
79
|
-
expect { Synapsis::Card.edit(edit_card_params.merge(account_class: 'WRONG')) }.to raise_error(Synapsis::Error).with_message('
|
79
|
+
expect { Synapsis::Card.edit(edit_card_params.merge(account_class: 'WRONG')) }.to raise_error(Synapsis::Error).with_message('account_class not supplied or incorrectly formatted')
|
80
|
+
|
81
|
+
# Wrong account type
|
82
|
+
expect { Synapsis::Card.edit(edit_card_params.merge(account_type: 'WRONG')) }.to raise_error(Synapsis::Error).with_message('account_type not supplied or incorrectly formatted')
|
80
83
|
end
|
81
84
|
|
82
85
|
xit 'doesn\'t raise errors on invalid account numbers and routing numbers' do
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
RSpec.describe Synapsis::Deposit do
|
4
4
|
context '#add' do
|
5
5
|
let!(:deposit_params) {{
|
6
|
-
amount: 100,
|
6
|
+
amount: "100",
|
7
7
|
oauth_consumer_key: '3bdb5790692d06983d8cb0feb40365886631e52d',
|
8
8
|
bank_id: 2182
|
9
9
|
}}
|
@@ -29,7 +29,10 @@ RSpec.describe Synapsis::Deposit do
|
|
29
29
|
context 'errors' do
|
30
30
|
it 'create a Synapsis::Error object' do
|
31
31
|
# Missing amount
|
32
|
-
expect { Synapsis::Deposit.create(deposit_params.merge(amount: 0)) }.to raise_error(Synapsis::Error).with_message('
|
32
|
+
expect { Synapsis::Deposit.create(deposit_params.merge(amount: 0)) }.to raise_error(Synapsis::Error).with_message('amount not supplied or incorrectly formatted')
|
33
|
+
|
34
|
+
# Missing amount
|
35
|
+
expect { Synapsis::Deposit.create(deposit_params.merge(amount: 0)) }.to raise_error(Synapsis::Error).with_message('amount not supplied or incorrectly formatted')
|
33
36
|
|
34
37
|
# OAuth error
|
35
38
|
expect { Synapsis::Deposit.create(deposit_params.merge(oauth_consumer_key: 'WRONG!!!')) }.to raise_error(Synapsis::Error).with_message('Error in OAuth Authentication.')
|
@@ -9,7 +9,7 @@ RSpec.describe Synapsis::MassPay do
|
|
9
9
|
let!(:mass_pay_hash) {{
|
10
10
|
legal_name: 'Test Person',
|
11
11
|
account_number: '1111111112',
|
12
|
-
routing_number:
|
12
|
+
routing_number: get_random_routing_number,
|
13
13
|
amount: 1,
|
14
14
|
trans_type: 0,
|
15
15
|
account_class: 1,
|
@@ -18,7 +18,7 @@ RSpec.describe Synapsis::MassPay do
|
|
18
18
|
let!(:mass_pay_hash2) {{
|
19
19
|
legal_name: 'Test Person2',
|
20
20
|
account_number: '1111111112',
|
21
|
-
routing_number:
|
21
|
+
routing_number: get_random_routing_number,
|
22
22
|
amount: 1,
|
23
23
|
trans_type: 0,
|
24
24
|
account_class: 1,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: synapsis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daryll Santos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -113,7 +113,6 @@ files:
|
|
113
113
|
- lib/synapsis/api_operations/edit.rb
|
114
114
|
- lib/synapsis/api_operations/view.rb
|
115
115
|
- lib/synapsis/api_resource.rb
|
116
|
-
- lib/synapsis/authentication.rb
|
117
116
|
- lib/synapsis/bank.rb
|
118
117
|
- lib/synapsis/bank_status.rb
|
119
118
|
- lib/synapsis/card.rb
|
@@ -122,14 +121,12 @@ files:
|
|
122
121
|
- lib/synapsis/mass_pay.rb
|
123
122
|
- lib/synapsis/order.rb
|
124
123
|
- lib/synapsis/user.rb
|
125
|
-
- lib/synapsis/utilities.rb
|
126
124
|
- lib/synapsis/version.rb
|
127
125
|
- lib/synapsis/withdrawal.rb
|
128
126
|
- spec/config.yml
|
129
127
|
- spec/spec_helper.rb
|
130
|
-
- spec/support/
|
128
|
+
- spec/support/routing_number_helpers.rb
|
131
129
|
- spec/synapsis/api_resource_spec.rb
|
132
|
-
- spec/synapsis/authentication_spec.rb
|
133
130
|
- spec/synapsis/bank_link_spec.rb
|
134
131
|
- spec/synapsis/bank_spec.rb
|
135
132
|
- spec/synapsis/bank_status_spec.rb
|
@@ -160,16 +157,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
157
|
version: '0'
|
161
158
|
requirements: []
|
162
159
|
rubyforge_project:
|
163
|
-
rubygems_version: 2.
|
160
|
+
rubygems_version: 2.4.7
|
164
161
|
signing_key:
|
165
162
|
specification_version: 4
|
166
163
|
summary: Ruby wrapper to the SynapsePay API
|
167
164
|
test_files:
|
168
165
|
- spec/config.yml
|
169
166
|
- spec/spec_helper.rb
|
170
|
-
- spec/support/
|
167
|
+
- spec/support/routing_number_helpers.rb
|
171
168
|
- spec/synapsis/api_resource_spec.rb
|
172
|
-
- spec/synapsis/authentication_spec.rb
|
173
169
|
- spec/synapsis/bank_link_spec.rb
|
174
170
|
- spec/synapsis/bank_spec.rb
|
175
171
|
- spec/synapsis/bank_status_spec.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
class Synapsis::Authentication
|
2
|
-
include Synapsis::Utilities
|
3
|
-
|
4
|
-
attr_accessor :username, :password, :grant_type, :scope
|
5
|
-
|
6
|
-
def self.login(params)
|
7
|
-
self.new(params).login
|
8
|
-
end
|
9
|
-
|
10
|
-
def initialize(params)
|
11
|
-
params.each do |k, v|
|
12
|
-
send("#{k}=", v)
|
13
|
-
end
|
14
|
-
|
15
|
-
@grant_type = 'password'
|
16
|
-
@scope = 'write'
|
17
|
-
end
|
18
|
-
|
19
|
-
def login
|
20
|
-
Synapsis.connection.post do |req|
|
21
|
-
req.url 'oauth2/access_token'
|
22
|
-
req.body = build_params_from_string
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
data/lib/synapsis/utilities.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
|
3
|
-
module Synapsis::Utilities
|
4
|
-
def build_json_from_params
|
5
|
-
JSON.generate(to_hash.merge(client_credentials))
|
6
|
-
end
|
7
|
-
|
8
|
-
def build_json_from_variable_hash
|
9
|
-
JSON.generate(to_hash)
|
10
|
-
end
|
11
|
-
|
12
|
-
def to_hash
|
13
|
-
instance_variables.map do |ivar|
|
14
|
-
[ivar[1..-1], instance_variable_get(ivar)]
|
15
|
-
end.to_h
|
16
|
-
end
|
17
|
-
|
18
|
-
def build_params_from_string
|
19
|
-
to_hash.merge(client_credentials).map { |k, v| "#{k}=#{v}" }.join("&")
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def client_credentials
|
25
|
-
{
|
26
|
-
client_id: Synapsis.client_id,
|
27
|
-
client_secret: Synapsis.client_secret
|
28
|
-
}
|
29
|
-
end
|
30
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
RSpec.describe Synapsis::Authentication do
|
4
|
-
it 'connects' do
|
5
|
-
authentication_params = {
|
6
|
-
username: 'b84b8c816c0541f09ea9fbd7c5d8e4',
|
7
|
-
password: '5ourcep4d'
|
8
|
-
}
|
9
|
-
|
10
|
-
response = Synapsis::Authentication.login(authentication_params)
|
11
|
-
|
12
|
-
expect(JSON.parse(response.body)['access_token']).to be_truthy
|
13
|
-
expect(JSON.parse(response.body)['token_type']).to eq 'Bearer'
|
14
|
-
end
|
15
|
-
end
|