synapse_fi 0.0.3 → 0.0.4
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 -1
- data/Gemfile +1 -0
- data/Gemfile.lock +15 -9
- data/README.md +12 -1
- data/Rakefile +1 -1
- data/lib/synapse_api/client.rb +66 -59
- data/lib/synapse_api/error.rb +0 -27
- data/lib/synapse_api/http_request.rb +12 -3
- data/lib/synapse_api/user.rb +130 -87
- data/lib/synapse_api/version.rb +1 -1
- data/lib/synapse_fi.rb +28 -0
- data/pkg/synapse_fi-0.0.3.gem +0 -0
- data/samples.md +260 -247
- metadata +4 -14
- data/.DS_Store +0 -0
- data/node_modules/.yarn-integrity +0 -16
- data/node_modules/dotenv/CHANGELOG.md +0 -117
- data/node_modules/dotenv/LICENSE +0 -23
- data/node_modules/dotenv/README.md +0 -295
- data/node_modules/dotenv/config.js +0 -11
- data/node_modules/dotenv/lib/cli-options.js +0 -13
- data/node_modules/dotenv/lib/env-options.js +0 -18
- data/node_modules/dotenv/lib/main.js +0 -103
- data/node_modules/dotenv/package.json +0 -45
- data/package.json +0 -5
- data/synapse_fi-0.0.2.gem +0 -0
data/lib/synapse_api/user.rb
CHANGED
@@ -22,7 +22,7 @@ module Synapse
|
|
22
22
|
# @param payload [Hash]
|
23
23
|
# @param full_dehydrate [Boolean]
|
24
24
|
def initialize(user_id:,refresh_token:, client:,payload:, full_dehydrate:)
|
25
|
-
|
25
|
+
@user_id = user_id
|
26
26
|
@client = client
|
27
27
|
@refresh_token = refresh_token
|
28
28
|
@payload =payload
|
@@ -34,29 +34,27 @@ module Synapse
|
|
34
34
|
# @param payload [Hash]
|
35
35
|
# @return [Synapse::User]
|
36
36
|
def user_update(payload:)
|
37
|
-
|
37
|
+
path = get_user_path(user_id: self.user_id)
|
38
38
|
begin
|
39
39
|
response = client.patch(path, payload)
|
40
40
|
rescue Synapse::Error::Unauthorized
|
41
41
|
self.authenticate()
|
42
42
|
response =client.patch(path, payload)
|
43
43
|
end
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
)
|
51
|
-
|
52
|
-
user
|
44
|
+
User.new(user_id: response['_id'],
|
45
|
+
refresh_token: response['refresh_token'],
|
46
|
+
client: client,
|
47
|
+
full_dehydrate: false,
|
48
|
+
payload: response
|
49
|
+
)
|
53
50
|
end
|
54
51
|
|
55
52
|
# Queries the API for a node belonging to user
|
56
53
|
# @param node_id [String]
|
57
|
-
# @param full_dehydrate [String] (optional)
|
58
|
-
#
|
59
|
-
#
|
54
|
+
# @param full_dehydrate [String] (optional)
|
55
|
+
# if true, returns all trans data on node
|
56
|
+
# @param force_refresh [String] (optional) if true, force refresh
|
57
|
+
# will attempt updating the account balance and transactions on node
|
60
58
|
# @return [Synapse::Node]
|
61
59
|
def get_user_node(node_id:, **options)
|
62
60
|
options[:full_dehydrate] = "yes" if options[:full_dehydrate] == true
|
@@ -64,7 +62,9 @@ module Synapse
|
|
64
62
|
options[:force_refresh] = "yes" if options[:force_refresh] == true
|
65
63
|
options[:force_refresh] = "no" if options[:force_refresh] == false
|
66
64
|
|
67
|
-
path = node(node_id:node_id,
|
65
|
+
path = node(node_id: node_id,
|
66
|
+
full_dehydrate: options[:full_dehydrate],
|
67
|
+
force_refresh: options[:force_refresh] )
|
68
68
|
|
69
69
|
begin
|
70
70
|
node = client.get(path)
|
@@ -75,12 +75,11 @@ module Synapse
|
|
75
75
|
end
|
76
76
|
|
77
77
|
node = Node.new(node_id: node['_id'],
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
node
|
78
|
+
user_id: self.user_id,
|
79
|
+
payload: node,
|
80
|
+
full_dehydrate: options[:full_dehydrate] == "yes" ? true : false,
|
81
|
+
type: node["type"]
|
82
|
+
)
|
84
83
|
end
|
85
84
|
|
86
85
|
# Queries Synapse API for all nodes belonging to user
|
@@ -105,19 +104,17 @@ module Synapse
|
|
105
104
|
end
|
106
105
|
|
107
106
|
return [] if nodes["nodes"].empty?
|
108
|
-
response = nodes["nodes"].map { |node_data| Node.new(node_id: node_data['_id'],
|
109
|
-
|
107
|
+
response = nodes["nodes"].map { |node_data| Node.new(node_id: node_data['_id'],
|
108
|
+
user_id: node_data['user_id'],
|
109
|
+
payload: node_data, full_dehydrate: "no",
|
110
|
+
type: node_data["type"])}
|
111
|
+
nodes = Nodes.new(limit: nodes["limit"],
|
112
|
+
page: nodes["page"],
|
113
|
+
page_count: nodes["page_count"],
|
114
|
+
nodes_count: nodes["node_count"],
|
115
|
+
payload: response)
|
110
116
|
end
|
111
117
|
|
112
|
-
# Queries Synapse get user API for users refresh_token
|
113
|
-
# @see https://docs.synapsefi.com/docs/get-user
|
114
|
-
# @return refresh_token [String]
|
115
|
-
# def refresh_token()
|
116
|
-
# path = get_user_path(user_id: self.user_id)
|
117
|
-
# response = client.get(path)
|
118
|
-
# response["refresh_token"]
|
119
|
-
# end
|
120
|
-
|
121
118
|
# Quaries Synapse oauth API for uto authenitcate user
|
122
119
|
# @params scope [Array<Strings>] (optional)
|
123
120
|
# @param idempotency_key [String] (optional)
|
@@ -148,9 +145,9 @@ module Synapse
|
|
148
145
|
# @return API response [Hash]
|
149
146
|
def select_2fa_device(device:, **options)
|
150
147
|
payload = {
|
151
|
-
|
152
|
-
|
153
|
-
|
148
|
+
"refresh_token": self.refresh_token,
|
149
|
+
"phone_number": device
|
150
|
+
}
|
154
151
|
path = oauth_path()
|
155
152
|
device_response = client.post(path, payload, options)
|
156
153
|
device_response
|
@@ -164,9 +161,9 @@ module Synapse
|
|
164
161
|
# @return API response [Hash]
|
165
162
|
def confirm_2fa_pin(pin:, **options)
|
166
163
|
payload = {
|
167
|
-
|
168
|
-
|
169
|
-
|
164
|
+
"refresh_token": self.refresh_token,
|
165
|
+
"validation_pin": pin
|
166
|
+
}
|
170
167
|
|
171
168
|
payload["scope"] = options[:scope] if options[:scope]
|
172
169
|
|
@@ -203,8 +200,15 @@ module Synapse
|
|
203
200
|
end
|
204
201
|
|
205
202
|
|
206
|
-
response = trans["trans"].map { |trans_data| Transaction.new(trans_id: trans_data['_id'],
|
207
|
-
|
203
|
+
response = trans["trans"].map { |trans_data| Transaction.new(trans_id: trans_data['_id'],
|
204
|
+
payload: trans_data
|
205
|
+
)}
|
206
|
+
trans = Transactions.new(limit: trans["limit"],
|
207
|
+
page: trans["page"],
|
208
|
+
page_count: trans["page_count"],
|
209
|
+
trans_count: trans["trans_count"],
|
210
|
+
payload: response
|
211
|
+
)
|
208
212
|
|
209
213
|
trans
|
210
214
|
end
|
@@ -227,12 +231,21 @@ module Synapse
|
|
227
231
|
end
|
228
232
|
|
229
233
|
if response["nodes"]
|
230
|
-
nodes = response["nodes"].map { |nodes_data| Node.new(user_id:
|
231
|
-
|
234
|
+
nodes = response["nodes"].map { |nodes_data| Node.new(user_id: self.user_id,
|
235
|
+
node_id: nodes_data["_id"],
|
236
|
+
full_dehydrate: false,
|
237
|
+
payload: response,
|
238
|
+
type: nodes_data["type"]
|
239
|
+
)}
|
240
|
+
nodes = Nodes.new(page: response["page"],
|
241
|
+
limit: response["limit"],
|
242
|
+
page_count: response["page_count"],
|
243
|
+
nodes_count: response["node_count"],
|
244
|
+
payload: nodes
|
245
|
+
)
|
232
246
|
else
|
233
247
|
access_token = response
|
234
248
|
end
|
235
|
-
|
236
249
|
access_token ? access_token : nodes
|
237
250
|
end
|
238
251
|
|
@@ -254,16 +267,24 @@ module Synapse
|
|
254
267
|
end
|
255
268
|
|
256
269
|
if response["nodes"]
|
257
|
-
nodes = response["nodes"].map { |nodes_data| Node.new(user_id:
|
258
|
-
|
270
|
+
nodes = response["nodes"].map { |nodes_data| Node.new(user_id: self.user_id,
|
271
|
+
node_id: nodes_data["_id"],
|
272
|
+
full_dehydrate: false,
|
273
|
+
payload: response,
|
274
|
+
type: nodes_data["type"]
|
275
|
+
)}
|
276
|
+
nodes = Nodes.new(page: response["page"],
|
277
|
+
limit: response["limit"],
|
278
|
+
page_count: response["page_count"],
|
279
|
+
nodes_count: response["node_count"],
|
280
|
+
payload: nodes
|
281
|
+
)
|
259
282
|
else
|
260
283
|
access_token = response
|
261
284
|
end
|
262
|
-
|
263
285
|
access_token ? access_token : nodes
|
264
286
|
end
|
265
287
|
|
266
|
-
|
267
288
|
# Allows you to upload an Ultimate Beneficial Ownership document
|
268
289
|
# @param payload [Hash]
|
269
290
|
# @see https://docs.synapsefi.com/docs/generate-ubo-form
|
@@ -278,7 +299,6 @@ module Synapse
|
|
278
299
|
self.authenticate()
|
279
300
|
response = client.patch(path,payload)
|
280
301
|
end
|
281
|
-
|
282
302
|
response
|
283
303
|
end
|
284
304
|
|
@@ -300,7 +320,6 @@ module Synapse
|
|
300
320
|
self.authenticate()
|
301
321
|
statements = client.get(path)
|
302
322
|
end
|
303
|
-
|
304
323
|
statements
|
305
324
|
end
|
306
325
|
|
@@ -309,16 +328,18 @@ module Synapse
|
|
309
328
|
# @param payload [Hash]
|
310
329
|
# @return [Synapse::Node] or [Hash]
|
311
330
|
def ship_card(node_id:, payload:)
|
312
|
-
|
313
331
|
path = node(user_id: self.user_id, node_id: node_id) + "?ship=YES"
|
314
|
-
|
315
332
|
begin
|
316
333
|
response = client.patch(path,payload)
|
317
334
|
rescue Synapse::Error::Unauthorized
|
318
335
|
self.authenticate()
|
319
336
|
response = client.patch(path,payload)
|
320
337
|
end
|
321
|
-
Node.new(user_id:
|
338
|
+
Node.new(user_id: self.user_id,
|
339
|
+
node_id: response["_id"],
|
340
|
+
full_dehydrate: false,
|
341
|
+
payload: response,
|
342
|
+
type: response["type"])
|
322
343
|
end
|
323
344
|
|
324
345
|
# Resets debit card number, cvv, and expiration date
|
@@ -334,7 +355,12 @@ module Synapse
|
|
334
355
|
self.authenticate()
|
335
356
|
response = client.patch(path,payload)
|
336
357
|
end
|
337
|
-
Node.new(user_id: self.user_id,
|
358
|
+
Node.new(user_id: self.user_id,
|
359
|
+
node_id:response["_id"],
|
360
|
+
full_dehydrate: false,
|
361
|
+
payload: response,
|
362
|
+
type: response["type"]
|
363
|
+
)
|
338
364
|
end
|
339
365
|
|
340
366
|
# Creates a new transaction in the API belonging to the provided node
|
@@ -351,7 +377,10 @@ module Synapse
|
|
351
377
|
self.authenticate()
|
352
378
|
transaction = client.post(path,payload, options)
|
353
379
|
end
|
354
|
-
transaction = Transaction.new(trans_id: transaction['_id'],
|
380
|
+
transaction = Transaction.new(trans_id: transaction['_id'],
|
381
|
+
payload: transaction,
|
382
|
+
node_id: node_id
|
383
|
+
)
|
355
384
|
end
|
356
385
|
|
357
386
|
# Queries the API for a transaction belonging to the supplied node by transaction id
|
@@ -367,8 +396,10 @@ module Synapse
|
|
367
396
|
self.authenticate()
|
368
397
|
trans = client.get(path)
|
369
398
|
end
|
370
|
-
|
371
|
-
|
399
|
+
Transaction.new(trans_id: trans['_id'],
|
400
|
+
payload: trans,
|
401
|
+
node_id: node_id
|
402
|
+
)
|
372
403
|
end
|
373
404
|
|
374
405
|
|
@@ -400,9 +431,16 @@ module Synapse
|
|
400
431
|
end
|
401
432
|
|
402
433
|
|
403
|
-
response = trans["trans"].map { |trans_data| Transaction.new(trans_id: trans_data['_id'],
|
404
|
-
|
405
|
-
|
434
|
+
response = trans["trans"].map { |trans_data| Transaction.new(trans_id: trans_data['_id'],
|
435
|
+
payload: trans_data,
|
436
|
+
node_id: node_id
|
437
|
+
)}
|
438
|
+
Transactions.new(limit: trans["limit"],
|
439
|
+
page: trans["page"],
|
440
|
+
page_count: trans["page_count"],
|
441
|
+
trans_count: trans["trans_count"],
|
442
|
+
payload: response
|
443
|
+
)
|
406
444
|
end
|
407
445
|
|
408
446
|
# Verifies microdeposits for a node
|
@@ -416,7 +454,12 @@ module Synapse
|
|
416
454
|
self.authenticate()
|
417
455
|
response = client.patch(path, payload)
|
418
456
|
end
|
419
|
-
Node.new(user_id:
|
457
|
+
Node.new(user_id: self.user_id,
|
458
|
+
node_id: response["_id"],
|
459
|
+
full_dehydrate: false,
|
460
|
+
payload: response,
|
461
|
+
type: response["type"]
|
462
|
+
)
|
420
463
|
end
|
421
464
|
|
422
465
|
# Reinitiate microdeposits on a node
|
@@ -430,7 +473,11 @@ module Synapse
|
|
430
473
|
self.authenticate()
|
431
474
|
response = client.patch(path, payload)
|
432
475
|
end
|
433
|
-
Node.new(user_id:
|
476
|
+
Node.new(user_id: self.user_id,
|
477
|
+
node_id: response["_id"],
|
478
|
+
full_dehydrate: false,
|
479
|
+
payload: response,
|
480
|
+
type: response["type"])
|
434
481
|
end
|
435
482
|
|
436
483
|
# Generate tokenized info for Apple Wallet
|
@@ -462,12 +509,12 @@ module Synapse
|
|
462
509
|
self.authenticate()
|
463
510
|
update = client.patch(path, payload)
|
464
511
|
end
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
512
|
+
Node.new(node_id: node_id,
|
513
|
+
user_id: self.user_id,
|
514
|
+
payload: update,
|
515
|
+
full_dehydrate: false,
|
516
|
+
type: update["type"]
|
517
|
+
)
|
471
518
|
end
|
472
519
|
|
473
520
|
def delete_node(node_id:)
|
@@ -487,9 +534,9 @@ module Synapse
|
|
487
534
|
# @param is_credit [Boolean], for credit send true, for debit send false
|
488
535
|
# @see https://docs.synapsefi.com/docs/trigger-dummy-transactions
|
489
536
|
def dummy_transactions(node_id:, is_credit: nil)
|
490
|
-
|
491
537
|
is_credit = "YES" if is_credit == true
|
492
538
|
is_credit = "NO" if is_credit == false
|
539
|
+
|
493
540
|
if is_credit
|
494
541
|
path = node(user_id: self.user_id, node_id: node_id) + "/dummy-tran?#{is_credit}"
|
495
542
|
else
|
@@ -511,7 +558,6 @@ module Synapse
|
|
511
558
|
# @param payload [Hash]
|
512
559
|
# @return [Synapse::Transaction]
|
513
560
|
def comment_transaction(node_id:,trans_id:,payload:)
|
514
|
-
|
515
561
|
path = trans_path(user_id: self.user_id, node_id: node_id) + "/#{trans_id}"
|
516
562
|
|
517
563
|
begin
|
@@ -520,8 +566,7 @@ module Synapse
|
|
520
566
|
self.authenticate()
|
521
567
|
trans = client.patch(path, payload)
|
522
568
|
end
|
523
|
-
|
524
|
-
transaction
|
569
|
+
Transaction.new(trans_id: trans['_id'], payload: trans)
|
525
570
|
end
|
526
571
|
|
527
572
|
# Cancels transaction if it has not already settled
|
@@ -529,7 +574,6 @@ module Synapse
|
|
529
574
|
# @param trans_id
|
530
575
|
# @return API response [Hash]
|
531
576
|
def cancel_transaction(node_id:, trans_id:)
|
532
|
-
|
533
577
|
path = trans_path(user_id: self.user_id, node_id: node_id) + "/#{trans_id}"
|
534
578
|
begin
|
535
579
|
response = client.delete(path)
|
@@ -545,13 +589,10 @@ module Synapse
|
|
545
589
|
# @param trans_id
|
546
590
|
# @see https://docs.synapsefi.com/docs/dispute-card-transaction
|
547
591
|
# @return API response [Hash]
|
548
|
-
def dispute_card_transactions(node_id:, trans_id:)
|
592
|
+
def dispute_card_transactions(node_id:, trans_id:, payload:)
|
549
593
|
|
550
594
|
path = trans_path(user_id: user_id, node_id: node_id) + "/#{trans_id}"
|
551
595
|
path += "/dispute"
|
552
|
-
payload = {
|
553
|
-
"dispute_reason":"CHARGE_BACK"
|
554
|
-
}
|
555
596
|
begin
|
556
597
|
dispute = client.patch(path, payload)
|
557
598
|
rescue Synapse::Error::Unauthorized
|
@@ -575,10 +616,9 @@ module Synapse
|
|
575
616
|
self.authenticate()
|
576
617
|
subnet = client.post(path,payload, options)
|
577
618
|
end
|
578
|
-
subnet = Subnet.new(subnet_id: subnet['_id'], payload: subnet, node_id: node_id)
|
579
|
-
subnet
|
580
|
-
end
|
581
619
|
|
620
|
+
Subnet.new(subnet_id: subnet['_id'], payload: subnet, node_id: node_id)
|
621
|
+
end
|
582
622
|
|
583
623
|
# Gets all node subnets
|
584
624
|
# @param node_id [String]
|
@@ -605,11 +645,17 @@ module Synapse
|
|
605
645
|
subnets = client.get(path)
|
606
646
|
end
|
607
647
|
|
608
|
-
response = subnets["subnets"].map { |subnets_data| Subnet.new(subnet_id: subnets_data['_id'],
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
subnets
|
648
|
+
response = subnets["subnets"].map { |subnets_data| Subnet.new(subnet_id: subnets_data['_id'],
|
649
|
+
payload: subnets,
|
650
|
+
node_id: node_id
|
651
|
+
)}
|
652
|
+
Subnets.new(limit: subnets["limit"],
|
653
|
+
page: subnets["page"],
|
654
|
+
page_count: subnets["page_count"],
|
655
|
+
subnets_count: subnets["subnets_count"],
|
656
|
+
payload: response,
|
657
|
+
node_id: node_id
|
658
|
+
)
|
613
659
|
end
|
614
660
|
|
615
661
|
# Queries a node for a specific subnet by subnet_id
|
@@ -724,6 +770,3 @@ end
|
|
724
770
|
|
725
771
|
|
726
772
|
|
727
|
-
|
728
|
-
|
729
|
-
|
data/lib/synapse_api/version.rb
CHANGED
data/lib/synapse_fi.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# client
|
2
|
+
require "synapse_api/client"
|
3
|
+
# error
|
4
|
+
require "synapse_api/error"
|
5
|
+
# http_request
|
6
|
+
require "synapse_api/http_request"
|
7
|
+
# node
|
8
|
+
require "synapse_api/node"
|
9
|
+
# nodes
|
10
|
+
require "synapse_api/nodes"
|
11
|
+
# subnet
|
12
|
+
require "synapse_api/subnet"
|
13
|
+
# subnets
|
14
|
+
require "synapse_api/subnets"
|
15
|
+
# subscription
|
16
|
+
require "synapse_api/subscription"
|
17
|
+
# subscriptions
|
18
|
+
require "synapse_api/subscriptions"
|
19
|
+
# transaction
|
20
|
+
require "synapse_api/transaction"
|
21
|
+
# transactions
|
22
|
+
require "synapse_api/transactions"
|
23
|
+
# user
|
24
|
+
require "synapse_api/user"
|
25
|
+
# users
|
26
|
+
require "synapse_api/users"
|
27
|
+
# version
|
28
|
+
require "synapse_api/version"
|
Binary file
|