synapse_pay_rest 3.2.5 → 3.2.6

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: 712e02a3aa89c4f26d4f770a56478c9853bc1a08
4
- data.tar.gz: 41e153b3fa82b7aefc3714c254088f8674a050c7
3
+ metadata.gz: 1c72de6543bbbb47edefe1df209eaf2091f73c44
4
+ data.tar.gz: b460b9fdce9f6585cfeb0168beeea3d7d6266b6e
5
5
  SHA512:
6
- metadata.gz: 390d572c5819a1a1d1672869598819ea1182275ab4d5d91eccc667dca3f90955d6c2f4b41932665adc920a0cf391db7a953d70a4998d8eb5350ecd788db00f5e
7
- data.tar.gz: 8d0b7dd0db5a5794ae2cb3f1dd44e56b5d88c103222f859e4ad2c835568ac2ac804a5c11ff438238dacf57fe3ba9da431aba741fd6e7d9d9edb289c0e7767aaa
6
+ metadata.gz: '0780e99faa813c86be03e05b2ee7082de33bf6a56b6a9a03c60ba7ff3f3d7f981a002476bdb4556424885a76b946c3d9f0aa4a1e9d4fe8ed78942a67295bb465'
7
+ data.tar.gz: 46bd306c307582b55688cc7419382b0ef0659a3ef1a4230ee938518a83cd044ac8760f767caaf66dace5dbd0e5c3e596db6bbb0dd06f00bba30f7cfe3bef2b67
data/.gitignore CHANGED
@@ -43,3 +43,4 @@ Gemfile.lock
43
43
  .env
44
44
  *.yml
45
45
  test.rb
46
+ *.txt
@@ -7,6 +7,7 @@ require 'synapse_pay_rest/api/users'
7
7
  require 'synapse_pay_rest/api/nodes'
8
8
  require 'synapse_pay_rest/api/transactions'
9
9
  require 'synapse_pay_rest/api/subscriptions'
10
+ require 'synapse_pay_rest/api/institutions'
10
11
 
11
12
  # general library classes
12
13
  require 'synapse_pay_rest/error'
@@ -31,6 +32,8 @@ require 'synapse_pay_rest/models/node/base_node'
31
32
  require 'synapse_pay_rest/models/node/synapse_us_node.rb'
32
33
  require 'synapse_pay_rest/models/node/synapse_ind_node.rb'
33
34
  require 'synapse_pay_rest/models/node/synapse_np_node.rb'
35
+ require 'synapse_pay_rest/models/node/subaccount_us_node.rb'
36
+
34
37
  # ach
35
38
  require 'synapse_pay_rest/models/node/ach_us_node.rb'
36
39
  require 'synapse_pay_rest/models/node/unverified_node.rb'
@@ -44,6 +47,8 @@ require 'synapse_pay_rest/models/node/wire_int_node.rb'
44
47
  require 'synapse_pay_rest/models/node/reserve_us_node.rb'
45
48
  # triump subaccount
46
49
  require 'synapse_pay_rest/models/node/triumph_subaccount_us_node.rb'
50
+ require 'synapse_pay_rest/models/node/subaccount_us_node.rb'
51
+
47
52
  # iou
48
53
  require 'synapse_pay_rest/models/node/iou_node.rb'
49
54
 
@@ -56,6 +61,9 @@ require 'synapse_pay_rest/models/transaction/transaction'
56
61
  # subscription-related classes
57
62
  require 'synapse_pay_rest/models/subscription/subscription'
58
63
 
64
+ # institution-related classes
65
+ require 'synapse_pay_rest/models/institution/institution'
66
+
59
67
  # Namespace for all SynapsePayRest classes and modules
60
68
  module SynapsePayRest
61
69
  # Modifies the default method to print a warning when deprecated constants
@@ -0,0 +1,33 @@
1
+ module SynapsePayRest
2
+ # Wrapper class for /institutions endpoints
3
+ #
4
+ #
5
+ class Institutions
6
+
7
+ # @!attribute [rw] client
8
+ # @return [SynapsePayRest::HTTPClient]
9
+ attr_accessor :client
10
+
11
+ # @param client [SynapsePayRest::HTTPClient]
12
+ def initialize(client)
13
+ @client = client
14
+ end
15
+
16
+ # Sends a GET request to /v3.1/institutions endpoint. Queries a specific subscription_id
17
+ #
18
+ #
19
+ # @raise [SynapsePayRest::Error] may return subclasses of error based on
20
+ # HTTP response from API
21
+ #
22
+ # @return [Hash] API response
23
+ #
24
+ # @todo Probably should use CGI or RestClient's param builder instead of
25
+ # rolling our own, probably error-prone and untested version
26
+ # https://github.com/rest-client/rest-client#usage-raw-url
27
+ def get()
28
+ path = '/institutions'
29
+ client.get(path)
30
+ end
31
+
32
+ end
33
+ end
@@ -13,7 +13,7 @@ module SynapsePayRest
13
13
  # @return [SynapsePayRest::Transactions]
14
14
  # @!attribute [rw] subscriptions
15
15
  # @return [SynapsePayRest::Subscriptions]
16
- attr_accessor :http_client, :users, :nodes, :transactions, :subscriptions
16
+ attr_accessor :http_client, :users, :nodes, :transactions, :subscriptions, :institutions
17
17
 
18
18
  # Alias for #transactions (legacy name)
19
19
  alias_method :trans, :transactions
@@ -45,6 +45,7 @@ module SynapsePayRest
45
45
  @nodes = Nodes.new @http_client
46
46
  @transactions = Transactions.new @http_client
47
47
  @subscriptions = Subscriptions.new @http_client
48
+ @institutions = Institutions.new @http_client
48
49
  end
49
50
  end
50
51
  end
@@ -0,0 +1,44 @@
1
+ module SynapsePayRest
2
+ # Represents an institution record and holds methods for getting institution instances
3
+ # from API calls. This is built on top of the SynapsePayRest::Institution class and
4
+ # is intended to make it easier to use the API without knowing payload formats
5
+ # or knowledge of REST.
6
+ #
7
+ # @todo use mixins to remove duplication between Node and BaseNode.
8
+ class Institution
9
+ attr_reader :id, :is_active, :scope, :url
10
+
11
+ class << self
12
+ def all(client:)
13
+ raise ArgumentError, 'client must be a SynapsePayRest::Client' unless client.is_a?(Client)
14
+ response = client.institutions.get()
15
+ multiple_from_response(response['banks'])
16
+ end
17
+
18
+ # Creates an Institution from a response hash.
19
+ #
20
+ # @note Shouldn't need to call this directly.
21
+ def from_response(response)
22
+ args = {
23
+ bank_code: response['bank_code'],
24
+ bank_name: response['bank_name'],
25
+ features: response['features'],
26
+ forgotten_password: response['forgotten_password'],
27
+ is_active: response['is_active'],
28
+ logo: response['logo'],
29
+ tx_history_months: response['tx_history_months']
30
+ }
31
+ self.new(args)
32
+ end
33
+
34
+ # Calls from_response on each member of a response collection.
35
+ def multiple_from_response(response)
36
+ return [] if response.empty?
37
+ response.map { |institution_data| from_response(institution_data)}
38
+ end
39
+
40
+ private
41
+
42
+ end
43
+ end
44
+ end
@@ -15,6 +15,7 @@ module SynapsePayRest
15
15
  'SYNAPSE-NP' => SynapseNpNode,
16
16
  'SYNAPSE-US' => SynapseUsNode,
17
17
  'TRIUMPH-SUBACCOUNT-US' => TriumphSubaccountUsNode,
18
+ 'SUBACCOUNT-US' => SubaccountUsNode,
18
19
  'WIRE-INT' => WireIntNode,
19
20
  'WIRE-US' => WireUsNode
20
21
  }.freeze
@@ -0,0 +1,15 @@
1
+ module SynapsePayRest
2
+ class SubaccountUsNode < BaseNode
3
+ class << self
4
+ private
5
+
6
+ def payload_for_create(nickname:, **options)
7
+ args = {
8
+ type: 'SUBACCOUNT-US',
9
+ nickname: nickname
10
+ }.merge(options)
11
+ super(args)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -581,6 +581,19 @@ module SynapsePayRest
581
581
  SynapseUsNode.create(user: self, **options)
582
582
  end
583
583
 
584
+ # Creates a SUBACCOUNT-US node.
585
+ #
586
+ # @param nickname [String] nickname for the node
587
+ # @param supp_id [String] (optional)
588
+ # @param gateway_restricted [Boolean] (optional)
589
+ #
590
+ # @raise [SynapsePayRest::Error]
591
+ #
592
+ # @return [SynapsePayRest::SubaccountUsNode]
593
+ def create_subaccount_us_node(**options)
594
+ SubaccountUsNode.create(user: self, **options)
595
+ end
596
+
584
597
  # Creates a TRIUMPH-SUBACCOUNT-US node.
585
598
  #
586
599
  # @param nickname [String] nickname for the node
@@ -1,4 +1,4 @@
1
1
  module SynapsePayRest
2
2
  # Gem version
3
- VERSION = '3.2.5'.freeze
3
+ VERSION = '3.2.6'.freeze
4
4
  end
@@ -7,9 +7,9 @@ Gem::Specification.new do |s|
7
7
  s.name = 'synapse_pay_rest'
8
8
  s.version = SynapsePayRest::VERSION
9
9
  s.date = Date.today.to_s
10
- s.authors = ['Steven Broderick', 'Nikki Galusha']
10
+ s.authors = ['Steven Broderick', 'Thomas Hipps']
11
11
  s.email = 'help@synapsepay.com'
12
- s.summary = 'Synapse v3 Rest Native API Library'
12
+ s.summary = 'SynapsePay v3 Rest Native API Library'
13
13
  s.homepage = 'https://rubygems.org/gems/synapse_pay_rest'
14
14
  s.license = 'MIT'
15
15
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synapse_pay_rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.5
4
+ version: 3.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Broderick
8
- - Nikki Galusha
8
+ - Thomas Hipps
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-06-23 00:00:00.000000000 Z
12
+ date: 2017-09-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -151,6 +151,7 @@ files:
151
151
  - Rakefile
152
152
  - bin/console
153
153
  - lib/synapse_pay_rest.rb
154
+ - lib/synapse_pay_rest/api/institutions.rb
154
155
  - lib/synapse_pay_rest/api/nodes.rb
155
156
  - lib/synapse_pay_rest/api/subscriptions.rb
156
157
  - lib/synapse_pay_rest/api/transactions.rb
@@ -158,6 +159,7 @@ files:
158
159
  - lib/synapse_pay_rest/client.rb
159
160
  - lib/synapse_pay_rest/error.rb
160
161
  - lib/synapse_pay_rest/http_client.rb
162
+ - lib/synapse_pay_rest/models/institution/institution.rb
161
163
  - lib/synapse_pay_rest/models/node/ach_us_node.rb
162
164
  - lib/synapse_pay_rest/models/node/base_node.rb
163
165
  - lib/synapse_pay_rest/models/node/eft_ind_node.rb
@@ -165,6 +167,7 @@ files:
165
167
  - lib/synapse_pay_rest/models/node/iou_node.rb
166
168
  - lib/synapse_pay_rest/models/node/node.rb
167
169
  - lib/synapse_pay_rest/models/node/reserve_us_node.rb
170
+ - lib/synapse_pay_rest/models/node/subaccount_us_node.rb
168
171
  - lib/synapse_pay_rest/models/node/synapse_ind_node.rb
169
172
  - lib/synapse_pay_rest/models/node/synapse_np_node.rb
170
173
  - lib/synapse_pay_rest/models/node/synapse_us_node.rb
@@ -207,5 +210,5 @@ rubyforge_project:
207
210
  rubygems_version: 2.6.11
208
211
  signing_key:
209
212
  specification_version: 4
210
- summary: Synapse v3 Rest Native API Library
213
+ summary: SynapsePay v3 Rest Native API Library
211
214
  test_files: []