synapse_pay_rest 3.4.1 → 3.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.env.sample +2 -1
- data/.gitignore +0 -0
- data/Gemfile +0 -0
- data/LICENSE +0 -0
- data/README.md +0 -0
- data/Rakefile +0 -0
- data/lib/synapse_pay_rest.rb +3 -0
- data/lib/synapse_pay_rest/api/atms.rb +0 -0
- data/lib/synapse_pay_rest/api/client.rb +0 -0
- data/lib/synapse_pay_rest/api/crypto_quotes.rb +0 -0
- data/lib/synapse_pay_rest/api/institutions.rb +0 -0
- data/lib/synapse_pay_rest/api/nodes.rb +0 -0
- data/lib/synapse_pay_rest/api/statements.rb +41 -0
- data/lib/synapse_pay_rest/api/subnets.rb +0 -0
- data/lib/synapse_pay_rest/api/subscriptions.rb +0 -0
- data/lib/synapse_pay_rest/api/transactions.rb +0 -0
- data/lib/synapse_pay_rest/api/users.rb +0 -0
- data/lib/synapse_pay_rest/client.rb +2 -1
- data/lib/synapse_pay_rest/error.rb +0 -0
- data/lib/synapse_pay_rest/http_client.rb +0 -0
- data/lib/synapse_pay_rest/models/atm/atm.rb +0 -0
- data/lib/synapse_pay_rest/models/client/issue_public_key.rb +0 -0
- data/lib/synapse_pay_rest/models/crypto_quote/crypto_quote.rb +0 -0
- data/lib/synapse_pay_rest/models/institution/institution.rb +0 -0
- data/lib/synapse_pay_rest/models/node/ach_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/base_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/card_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/check_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/clearing_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/crypto_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/deposit_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/eft_ind_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/eft_np_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/ib_deposit_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/ib_subaccount_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/interchange_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/iou_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/reserve_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/subaccount_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/subcard_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/synapse_ind_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/synapse_np_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/synapse_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/triumph_subaccount_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/unverified_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/wire_int_node.rb +0 -0
- data/lib/synapse_pay_rest/models/node/wire_us_node.rb +0 -0
- data/lib/synapse_pay_rest/models/statement/statement.rb +80 -0
- data/lib/synapse_pay_rest/models/subnet/subnet.rb +0 -0
- data/lib/synapse_pay_rest/models/subscription/subscription.rb +0 -0
- data/lib/synapse_pay_rest/models/transaction/transaction.rb +0 -0
- data/lib/synapse_pay_rest/models/user/base_document.rb +0 -0
- data/lib/synapse_pay_rest/models/user/document.rb +0 -0
- data/lib/synapse_pay_rest/models/user/physical_document.rb +0 -0
- data/lib/synapse_pay_rest/models/user/question.rb +0 -0
- data/lib/synapse_pay_rest/models/user/social_document.rb +0 -0
- data/lib/synapse_pay_rest/models/user/user.rb +0 -0
- data/lib/synapse_pay_rest/models/user/virtual_document.rb +0 -0
- data/lib/synapse_pay_rest/version.rb +1 -1
- data/samples.md +26 -0
- data/synapse_pay_rest.gemspec +0 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5c739268324bccef13ac3b3cfdcf97c6de821b0acfd30ec0ab8df1a7b7d4466a
|
4
|
+
data.tar.gz: 8b19a633a2da3cf57040b3d765a5b71e12231b30fa008b44eef0a94ec649b801
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3f12fd2df17e7b2f6b0c2f805497dd30ce031299af3eadc1ed38ee8ef0fd1819791d5c1d2673200cfd5adc9e50ee271339978f1c7d704f3160e99a7e0a16f4e
|
7
|
+
data.tar.gz: 243fa3411c03815f237cf606d4882ac34bf993897d5ce71815873b85af43fa8c842eb392a5c0661b4e30683b87afd76f7c067d86239284209715d3e4093f9ac6
|
data/.env.sample
CHANGED
data/.gitignore
CHANGED
File without changes
|
data/Gemfile
CHANGED
File without changes
|
data/LICENSE
CHANGED
File without changes
|
data/README.md
CHANGED
File without changes
|
data/Rakefile
CHANGED
File without changes
|
data/lib/synapse_pay_rest.rb
CHANGED
@@ -12,6 +12,7 @@ require 'synapse_pay_rest/api/institutions'
|
|
12
12
|
require 'synapse_pay_rest/api/client'
|
13
13
|
require 'synapse_pay_rest/api/atms'
|
14
14
|
require 'synapse_pay_rest/api/crypto_quotes'
|
15
|
+
require 'synapse_pay_rest/api/statements'
|
15
16
|
|
16
17
|
# general library classes
|
17
18
|
require 'synapse_pay_rest/error'
|
@@ -88,6 +89,8 @@ require 'synapse_pay_rest/models/atm/atm'
|
|
88
89
|
|
89
90
|
require 'synapse_pay_rest/models/crypto_quote/crypto_quote'
|
90
91
|
|
92
|
+
require 'synapse_pay_rest/models/statement/statement'
|
93
|
+
|
91
94
|
|
92
95
|
# Namespace for all SynapsePayRest classes and modules
|
93
96
|
module SynapsePayRest
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module SynapsePayRest
|
2
|
+
# Wrapper class for /client endpoint
|
3
|
+
class Statements
|
4
|
+
|
5
|
+
# Valid optional args for #get
|
6
|
+
# @todo Should refactor this to HTTPClient
|
7
|
+
VALID_QUERY_PARAMS = [:page, :per_page].freeze
|
8
|
+
|
9
|
+
# @!attribute [rw] client
|
10
|
+
# @return [SynapsePayRest::HTTPClient]
|
11
|
+
attr_accessor :client
|
12
|
+
|
13
|
+
# @param client [SynapsePayRest::HTTPClient]
|
14
|
+
def initialize(client)
|
15
|
+
@client = client
|
16
|
+
end
|
17
|
+
|
18
|
+
# Sends a GET request /node or /user statments endpoint to retrieve statements, and returns the
|
19
|
+
# response.
|
20
|
+
#
|
21
|
+
# @param user_id [String]
|
22
|
+
# @param node_id [String] optional
|
23
|
+
#
|
24
|
+
# @raise [SynapsePayRest::Error] may return subclasses of error based on
|
25
|
+
# HTTP response from API
|
26
|
+
#
|
27
|
+
# @return [Hash] API response
|
28
|
+
def get(user_id:, node_id: nil, **options)
|
29
|
+
params = VALID_QUERY_PARAMS.map do |p|
|
30
|
+
options[p] ? "#{p}=#{options[p]}" : nil
|
31
|
+
end.compact
|
32
|
+
|
33
|
+
path = "/users/#{user_id}"
|
34
|
+
path += "/nodes/#{node_id}" if node_id
|
35
|
+
path += "/statements"
|
36
|
+
path += '?' + params.join('&') if params.any?
|
37
|
+
client.get(path)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -14,7 +14,7 @@ module SynapsePayRest
|
|
14
14
|
# @!attribute [rw] subscriptions
|
15
15
|
# @return [SynapsePayRest::Subscriptions]
|
16
16
|
attr_accessor :http_client, :users, :nodes, :subnets, :transactions, :subscriptions, :institutions,
|
17
|
-
:client_endpoint, :atms, :crypto_quotes
|
17
|
+
:client_endpoint, :atms, :crypto_quotes, :statements
|
18
18
|
|
19
19
|
# Alias for #transactions (legacy name)
|
20
20
|
alias_method :trans, :transactions
|
@@ -51,6 +51,7 @@ module SynapsePayRest
|
|
51
51
|
@client_endpoint = ClientEndpoint.new @http_client
|
52
52
|
@atms = Atms.new @http_client
|
53
53
|
@crypto_quotes = CryptoQuotes.new @http_client
|
54
|
+
@statements = Statements.new @http_client
|
54
55
|
end
|
55
56
|
|
56
57
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module SynapsePayRest
|
2
|
+
# Represents a statement record and holds methods for getting statements
|
3
|
+
# from API calls. This is built on top of the SynapsePayRest::Client class and
|
4
|
+
# is intended to make it easier to use the API without knowing payload formats
|
5
|
+
# or knowledge of REST.
|
6
|
+
class Statement
|
7
|
+
attr_reader :client, :id, :date_end, :date_start, :csv_url, :pdf_url, :user, :node
|
8
|
+
|
9
|
+
class << self
|
10
|
+
# Creates a statements instance from a response hash.
|
11
|
+
# @note Shouldn't need to call this directly.
|
12
|
+
def from_response(client, response)
|
13
|
+
args = {
|
14
|
+
client: client,
|
15
|
+
id: response['_id'],
|
16
|
+
date_end: response['date_end'],
|
17
|
+
date_start: response['date_start'],
|
18
|
+
csv_url: response['urls']['csv'],
|
19
|
+
pdf_url: response['urls']['pdf']
|
20
|
+
}
|
21
|
+
self.new(args)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Gets statement by node or user.
|
25
|
+
# @param client [SynapsePayRest::Client]
|
26
|
+
# @param user [SynapsePayRest::User]
|
27
|
+
#
|
28
|
+
# @raise [SynapsePayRest::Error]
|
29
|
+
#
|
30
|
+
# @return [SynapsePayRest::Statement] new instance corresponding to same API record
|
31
|
+
def by_user(client:, user:, page: nil, per_page: nil)
|
32
|
+
raise ArgumentError, 'client must be a SynapsePayRest::Client' unless client.is_a?(Client)
|
33
|
+
raise ArgumentError, 'id must be a SynapsePayRest::User' unless user.is_a?(User)
|
34
|
+
|
35
|
+
[page, per_page].each do |arg|
|
36
|
+
if arg && (!arg.is_a?(Integer) || arg < 1)
|
37
|
+
raise ArgumentError, "#{arg} must be nil or an Integer >= 1"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
response = client.statements.get(user_id: user.id, page: page, per_page: per_page)
|
42
|
+
multiple_from_response(client, response['statements'])
|
43
|
+
end
|
44
|
+
|
45
|
+
# Gets statement by node or user.
|
46
|
+
# @param client [SynapsePayRest::Client]
|
47
|
+
# @param user [SynapsePayRest::Node]
|
48
|
+
#
|
49
|
+
# @raise [SynapsePayRest::Error]
|
50
|
+
#
|
51
|
+
# @return [SynapsePayRest::Statement] new instance corresponding to same API record
|
52
|
+
def by_node(client:, node:, page: nil, per_page: nil)
|
53
|
+
raise ArgumentError, 'client must be a SynapsePayRest::Client' unless client.is_a?(Client)
|
54
|
+
raise ArgumentError, 'node must be a SynapsePayRest::Node' unless node.is_a?(BaseNode)
|
55
|
+
|
56
|
+
[page, per_page].each do |arg|
|
57
|
+
if arg && (!arg.is_a?(Integer) || arg < 1)
|
58
|
+
raise ArgumentError, "#{arg} must be nil or an Integer >= 1"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
response = client.statements.get(user_id: node.user.id, node_id: node.id, page: page, per_page: per_page)
|
63
|
+
multiple_from_response(client, response['statements'])
|
64
|
+
end
|
65
|
+
|
66
|
+
def multiple_from_response(client, response)
|
67
|
+
return [] if response.empty?
|
68
|
+
response.map { |statement_data| from_response(client, statement_data) }
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
# @note Do not call directly. Use Statement.get or other class method
|
74
|
+
# to instantiate via API action.
|
75
|
+
def initialize(**options)
|
76
|
+
options.each { |key, value| instance_variable_set("@#{key}", value) }
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/samples.md
CHANGED
@@ -1407,3 +1407,29 @@ atm_args = {
|
|
1407
1407
|
atms = SynapsePayRest::Atm.locate(atm_args)
|
1408
1408
|
# => [#<SynapsePayRest::Atm>, #<SynapsePayRest::Atm>, ...]
|
1409
1409
|
```
|
1410
|
+
|
1411
|
+
## Get Statement Method
|
1412
|
+
|
1413
|
+
#### Get Statement By User or Node
|
1414
|
+
|
1415
|
+
##### a) Statement#by_user
|
1416
|
+
|
1417
|
+
```ruby
|
1418
|
+
user = SynapsePayRest::User.find(client: client, id: '5b5f95dc83403300fbc76')
|
1419
|
+
|
1420
|
+
statements = SynapsePayRest::Statement.by_user(client: client, user: user)
|
1421
|
+
# => [#<SynapsePayRest::Statement>, #<SynapsePayRest::Statement>, ...]
|
1422
|
+
```
|
1423
|
+
|
1424
|
+
##### b) Statement#by_node
|
1425
|
+
|
1426
|
+
```ruby
|
1427
|
+
user = SynapsePayRest::User.find(client: client, id: '5b5f95dc83403300fbc76')
|
1428
|
+
|
1429
|
+
node = user.find_node(id: '5b634a241jngjnei04c7b39b1')
|
1430
|
+
|
1431
|
+
|
1432
|
+
|
1433
|
+
statements = SynapsePayRest::Statement.by_node(client: client, node: node)
|
1434
|
+
# => [#<SynapsePayRest::Statement>, #<SynapsePayRest::Statement>, ...]
|
1435
|
+
```
|
data/synapse_pay_rest.gemspec
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: synapse_pay_rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Broderick
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-09-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
@@ -156,6 +156,7 @@ files:
|
|
156
156
|
- lib/synapse_pay_rest/api/crypto_quotes.rb
|
157
157
|
- lib/synapse_pay_rest/api/institutions.rb
|
158
158
|
- lib/synapse_pay_rest/api/nodes.rb
|
159
|
+
- lib/synapse_pay_rest/api/statements.rb
|
159
160
|
- lib/synapse_pay_rest/api/subnets.rb
|
160
161
|
- lib/synapse_pay_rest/api/subscriptions.rb
|
161
162
|
- lib/synapse_pay_rest/api/transactions.rb
|
@@ -191,6 +192,7 @@ files:
|
|
191
192
|
- lib/synapse_pay_rest/models/node/unverified_node.rb
|
192
193
|
- lib/synapse_pay_rest/models/node/wire_int_node.rb
|
193
194
|
- lib/synapse_pay_rest/models/node/wire_us_node.rb
|
195
|
+
- lib/synapse_pay_rest/models/statement/statement.rb
|
194
196
|
- lib/synapse_pay_rest/models/subnet/subnet.rb
|
195
197
|
- lib/synapse_pay_rest/models/subscription/subscription.rb
|
196
198
|
- lib/synapse_pay_rest/models/transaction/transaction.rb
|
@@ -224,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
226
|
version: '0'
|
225
227
|
requirements: []
|
226
228
|
rubyforge_project:
|
227
|
-
rubygems_version: 2.
|
229
|
+
rubygems_version: 2.7.6
|
228
230
|
signing_key:
|
229
231
|
specification_version: 4
|
230
232
|
summary: SynapsePay v3 Rest Native API Library
|