atrium-ruby 1.0.2 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b364d5f87f27e8f1cec05ae73fea7087fedc7499
4
- data.tar.gz: cd48ee5bf8aebb91b36b39ca35fbf3886f97d58c
3
+ metadata.gz: ca8b3c1777657ac0ebf861e6285519e16017d4b0
4
+ data.tar.gz: a042a427fc4967d1cb1c89119cd22591b4ea0cb9
5
5
  SHA512:
6
- metadata.gz: 15241e2d82b217fa5ac784baf458a8c0cfb4cf8d4eea7cc12b5ec541be36b137e9d438564259b2cd71d0cda2bf1815718f01bd55381de15bf8e12486837102d8
7
- data.tar.gz: fca725781320e163db9de6a80c1b953ed6bdbcb1b94f2610cd43c206015f317d8e78bbb77eacd6d420eaf1fb4784bb652615e9c3b1d714f1e96107f0a08a619e
6
+ metadata.gz: 616d9849a244e8bd8b7cc7183807578e44dc2415d3f853b13a3d94733400ea2e8c61bb1a88c0ae9df8f09046e61d81fb5e75924ab4caf5e507e62d2e37473144
7
+ data.tar.gz: 642b7d89f8feafb5dceb47fa48c952a18a0d56c745004ee3792146cf240bd81a952f2a24affa299341ba15547b2c93b4f1b841aad8e19f0f0688852e5168bfa8
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env ruby
2
+ require "atrium"
3
+
4
+ ::Atrium.configure do |config|
5
+ config.mx_client_id = "YOUR_MX_CLIENT_ID"
6
+ config.mx_api_key = "YOUR_MX_API_KEY"
7
+ end
8
+
9
+ puts "\n* Creating test user and member *"
10
+ user = ::Atrium::User.create :identifier => nil, :is_disabled => nil, :metadata => nil
11
+ puts "Created user: " + user.guid
12
+
13
+ credential_one = {}
14
+ credential_one[:guid] = "CRD-9f61fb4c-912c-bd1e-b175-ccc7f0275cc1"
15
+ credential_one[:value] = "test_atrium"
16
+
17
+ credential_two = {}
18
+ credential_two[:guid] = "CRD-e3d7ea81-aac7-05e9-fbdd-4b493c6e474d"
19
+ credential_two[:value] = "password"
20
+
21
+ credential_array = []
22
+ credential_array.push(credential_one)
23
+ credential_array.push(credential_two)
24
+
25
+ member = ::Atrium::Member.create :user_guid => user.guid, :institution_code => "mxbank", :credentials => credential_array
26
+ puts "Created member: " + member.guid
27
+
28
+ sleep(1)
29
+
30
+ puts "\n* Aggregating Member *"
31
+ member.aggregate
32
+
33
+ sleep(4)
34
+ puts "Member aggregation status: " + member.status
35
+
36
+ puts "\n* Listing all member accounts and transactions *"
37
+ accounts = member.accounts
38
+ accounts.each do |account|
39
+ puts "\nType: " + account.type + "\tName: " + account.name + "\tAvailable Balance: " + account.available_balance.to_s + "\tAvailable Credit: " + account.available_credit.to_s
40
+ puts "Transactions"
41
+ transactions = account.transactions
42
+ transactions.each do |transaction|
43
+ puts "\tDate: " + transaction.date + "\tDescription: " + transaction.description + "\tAmount: " + transaction.amount.to_s
44
+ end
45
+ end
46
+
47
+ puts "\n* Deleting test user *"
48
+ user.delete
49
+ puts "Deleted user: " + user.guid
@@ -0,0 +1,201 @@
1
+ #!/usr/bin/env ruby
2
+ require "atrium"
3
+
4
+ ::Atrium.configure do |config|
5
+ config.mx_client_id = "YOUR_MX_CLIENT_ID"
6
+ config.mx_api_key = "YOUR_MX_API_KEY"
7
+ end
8
+
9
+ puts "\n************************** Create User **************************"
10
+ user = ::Atrium::User.create :identifier => "unique_id", :is_disabled => "", :metadata => "{\"first_name\": \"Steven\"}"
11
+ puts user.guid
12
+ user_guid = user.guid
13
+
14
+ puts "\n************************** Read User **************************"
15
+ user = ::Atrium::User.read :guid => user_guid
16
+ puts user.guid
17
+
18
+ puts "\n************************** Update User **************************"
19
+ user = ::Atrium::User.read :guid => user_guid
20
+ user = user.update :metadata => "{\"first_name\": \"Steven\", \"last_name\": \"Universe\"}"
21
+ puts user.guid
22
+
23
+ puts "\n************************** List Users **************************"
24
+ users = ::Atrium::User.list
25
+ users.each do |a_user|
26
+ puts a_user.guid
27
+ end
28
+
29
+ puts "\n************************** List Institutions **************************"
30
+ name = "bank"
31
+ params = { :name => name }
32
+ institutions = ::Atrium::Institution.list :query_params => params
33
+ institutions.each do |institution|
34
+ puts institution.name
35
+ end
36
+
37
+ puts "\n************************** Read Institution **************************"
38
+ institution = ::Atrium::Institution.read :institution_code => "mxbank"
39
+ puts institution.name
40
+
41
+ puts "\n************************** Read Institution Credentials ************************** "
42
+ credentials = ::Atrium::Institution.credentials "mxbank"
43
+ credentials.each do |credential|
44
+ puts credential.guid
45
+ end
46
+
47
+ puts "\n************************** Create Member **************************"
48
+ # Create credential JSON object
49
+ credential_one = {}
50
+ credential_one[:guid] = "CRD-9f61fb4c-912c-bd1e-b175-ccc7f0275cc1"
51
+ credential_one[:value] = "test_atrium1"
52
+
53
+ # Create another credential JSON object
54
+ credential_two = {}
55
+ credential_two[:guid] = "CRD-e3d7ea81-aac7-05e9-fbdd-4b493c6e474d"
56
+ credential_two[:value] = "challenge1"
57
+
58
+ # Create credential array from credential JSON Objects
59
+ credential_array = []
60
+ credential_array.push(credential_one)
61
+ credential_array.push(credential_two)
62
+
63
+ member = ::Atrium::Member.create :user_guid => user_guid, :institution_code => "mxbank", :credentials => credential_array
64
+ puts member.guid
65
+ member_guid = member.guid
66
+
67
+ puts "\n************************** Read Member **************************"
68
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
69
+ puts member.guid
70
+
71
+ puts "\n************************** Update Member **************************"
72
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
73
+
74
+ username_credential = {}
75
+ username_credential[:guid] = "CRD-9f61fb4c-912c-bd1e-b175-ccc7f0275cc1"
76
+ username_credential[:value] = "test_atrium"
77
+
78
+ password_credential = {}
79
+ password_credential[:guid] = "CRD-e3d7ea81-aac7-05e9-fbdd-4b493c6e474d"
80
+ password_credential[:value] = "challenge"
81
+
82
+ updated_credentials = []
83
+ updated_credentials.push(username_credential)
84
+ updated_credentials.push(password_credential)
85
+
86
+ member = member.update(:metadata => "{\"credentials_last_refreshed_at\": \"2015-10-16\"}", :credentials => updated_credentials)
87
+ puts member.guid
88
+
89
+ puts "\n************************** List Members **************************"
90
+ members = ::Atrium::Member.list :user_guid => user_guid
91
+ members.each do |a_member|
92
+ puts a_member.guid
93
+ end
94
+
95
+ puts "\n************************** Aggregate Member **************************"
96
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
97
+ member = member.aggregate
98
+ puts member.guid
99
+
100
+ puts "\n************************** Read Member Status **************************"
101
+ sleep(5)
102
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
103
+ member = member.aggregation_status
104
+ puts member.guid
105
+
106
+ puts "\n************************** List Member MFA Challenges **************************"
107
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
108
+ challenges = member.challenges
109
+ challenges.each do |challenge|
110
+ puts challenge.guid
111
+ end
112
+ challenge_guid = challenges[0].guid
113
+
114
+ puts "\n************************** Resume Aggregation **************************"
115
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
116
+
117
+ credential_one = {}
118
+ credential_one[:guid] = challenge_guid
119
+ credential_one[:value] = "correct"
120
+
121
+ challenge_responses = []
122
+ challenge_responses.push(credential_one)
123
+
124
+ member = member.resume challenge_responses
125
+ puts member.status
126
+
127
+ puts "\n************************** List Member Credentials **************************"
128
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
129
+ credentials = member.credentials
130
+ credentials.each do |credential|
131
+ puts credential.guid
132
+ end
133
+
134
+ puts "\n************************** List Member Accounts **************************"
135
+ sleep(5)
136
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
137
+ accounts = member.accounts
138
+ accounts.each do |account|
139
+ puts account.guid
140
+ end
141
+ account_guid = accounts[0].guid
142
+
143
+ puts "\n************************** List Member Transactions **************************"
144
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
145
+ transactions = member.transactions
146
+ transactions.each do |transaction|
147
+ puts transaction.guid
148
+ end
149
+
150
+ puts "\n************************** Read Account **************************"
151
+ account = ::Atrium::Account.read :user_guid => user_guid, :account_guid => account_guid
152
+ puts account.guid
153
+
154
+ puts "\n************************** List Accounts for User **************************"
155
+ user_guid = user_guid
156
+ params = { :user_guid => user_guid }
157
+ accounts = ::Atrium::Account.list params
158
+ accounts.each do |an_account|
159
+ puts an_account.guid
160
+ end
161
+
162
+ puts "\n************************** List Account Transactions **************************"
163
+ account = ::Atrium::Account.read :user_guid => user_guid, :account_guid => account_guid
164
+
165
+ user_guid = user_guid
166
+ guid = account_guid
167
+ params = { :user_guid => user_guid, :guid => guid }
168
+
169
+ transactions = account.transactions params
170
+ transactions.each do |transaction|
171
+ puts transaction.guid
172
+ end
173
+ transaction_guid = transactions[0].guid
174
+
175
+ puts "\n************************** Read a Transaction **************************"
176
+ transaction = ::Atrium::Transaction.read :user_guid => user_guid, :transaction_guid => transaction_guid
177
+ puts transaction.guid
178
+
179
+ puts "\n************************** List Transactions **************************"
180
+ user_guid = user_guid
181
+ account_guid = account_guid
182
+ params = { :user_guid => user_guid, :account_guid => account_guid }
183
+
184
+ transactions = ::Atrium::Transaction.list params
185
+ transactions.each do |a_transaction|
186
+ puts a_transaction.guid
187
+ end
188
+
189
+ puts "\n************************** Connect Widget **************************"
190
+ widget = ::Atrium::Connect.create :user_guid => user_guid
191
+ puts widget.guid
192
+
193
+ puts "\n************************** Delete Member **************************"
194
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
195
+ response = member.delete
196
+ puts response.attributes
197
+
198
+ puts "\n************************** Delete User **************************"
199
+ user = ::Atrium::User.read :guid => user_guid
200
+ response = user.delete
201
+ puts response.attributes
@@ -0,0 +1,181 @@
1
+ #!/usr/bin/env ruby
2
+ require "atrium"
3
+
4
+ def check_job_status(user_guid, member_guid, counter)
5
+ puts "\n2 second delay..."
6
+ sleep(2)
7
+
8
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
9
+ member_response = member.aggregation_status
10
+ status = member_response.status
11
+
12
+ puts "\nJOB STATUS: " + status
13
+ case status
14
+ when "COMPLETED"
15
+ read_aggregation_data(user_guid, member_guid)
16
+ when "HALTED", "FAILED"
17
+ current_time = Time.now.utc.iso8601.chomp("Z") + "+00:00"
18
+
19
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
20
+ last_success_time = member.aggregation_status
21
+
22
+ # Check if last successful aggregation over 3 days aggregation
23
+ if !last_success_time.nil? && ((current_time[8, 2] - last_success_time[8, 2]).abs > 3 || (current_time[5, 2] - last_success_time[5, 2]).abs > 0 || (current_time[0, 4] - last_success_time[0, 4]).abs > 0)
24
+ puts "\nClient should contact MX Support to resolve issue."
25
+ else
26
+ puts "\nAn update is currently unavailable. Please try again tomorrow"
27
+ end
28
+ when "CREATED", "UPDATED", "RESUMED", "CONNECTED", "DEGRADED", "DELAYED", "INITIATED", "REQUESTED", "AUTHENTICATED", "RECEIVED", "TRANSFERRED"
29
+ check_job_status(user_guid, member_guid, counter)
30
+ when "PREVENTED", "DENIED", "IMPAIRED"
31
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
32
+ institution_code = member.institution_code
33
+
34
+ puts "\nPlease update credentials"
35
+ credentials = ::Atrium::Institution.credentials institution_code
36
+ updated_credentials = []
37
+ credentials.each do |credential|
38
+ puts "\nPlease enter in " + credential.label + ":"
39
+ response = gets.chomp
40
+ cred_pair = {}
41
+ cred_pair[:guid] = credential.guid
42
+ cred_pair[:value] = response
43
+ updated_credentials.push(cred_pair)
44
+ end
45
+
46
+ member.update(:credentials => updated_credentials)
47
+
48
+ check_job_status(user_guid, member_guid, counter)
49
+ when "CHALLENGED"
50
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
51
+ puts "\nPlease answer the following challenges:"
52
+ challenges = member.challenges
53
+ challenge_array = []
54
+ challenges.each do |challenge|
55
+ puts challenge.label
56
+ answer = gets.chomp
57
+ cred_pair = {}
58
+ cred_pair[:guid] = challenge.guid
59
+ cred_pair[:value] = answer
60
+ challenge_array.push(cred_pair)
61
+ end
62
+
63
+ member.resume challenge_array
64
+
65
+ check_job_status(user_guid, member_guid, counter)
66
+ when "REJECTED"
67
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
68
+ member.aggregate
69
+
70
+ check_job_status(user_guid, member_guid, counter)
71
+ when "EXPIRED"
72
+ puts "\nUser did not answer MFA in time. Please try again tomorrow."
73
+ when "LOCKED"
74
+ puts "\nUser's account is locked at FI"
75
+ when "IMPEDED"
76
+ puts "\nUser's attention is required at FI website in order for aggregation to complete"
77
+ when "DISCONTINUED"
78
+ puts "\nConnection to institution is no longer available."
79
+ when "CLOSED", "DISABLED"
80
+ puts "\nAggregation is purposely turned off for this user."
81
+ when "TERMINATED", "ABORTED", "STOPPED", "THROTTLED", "SUSPENDED", "ERRORED"
82
+ if counter < 3
83
+ counter += 1
84
+ check_job_status(user_guid, member_guid, counter)
85
+ else
86
+ puts "\nAn update is currently unavailable. Please try again tomorrow and contact support if unsuccessful after 3 days."
87
+ end
88
+ else
89
+ puts status
90
+ end
91
+ end
92
+
93
+ def read_aggregation_data(user_guid, member_guid)
94
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
95
+
96
+ puts "\n* Listing all member accounts and transactions *"
97
+ accounts = member.accounts
98
+ accounts.each do |account|
99
+ puts "\nType: " + account.type + "\tName: " + account.name + "\tAvailable Balance: " + account.available_balance.to_s + "\tAvailable Credit: " + account.available_credit.to_s
100
+ puts "Transactions"
101
+ transactions = account.transactions
102
+ transactions.each do |transaction|
103
+ puts "\tDate: " + transaction.date + "\tDescription: " + transaction.description + "\tAmount: " + transaction.amount.to_s
104
+ end
105
+ end
106
+ end
107
+
108
+ ::Atrium.configure do |config|
109
+ config.mx_client_id = "YOUR_MX_CLIENT_ID"
110
+ config.mx_api_key = "YOUR_MX_API_KEY"
111
+ end
112
+
113
+ counter = 0
114
+
115
+ puts "Please enter in user GUID. If not yet created just press enter key: "
116
+ user_guid = gets.chomp
117
+
118
+ puts "\nPlease enter in member GUID. If not yet created just press enter key: "
119
+ member_guid = gets.chomp
120
+
121
+ puts "\nPlease enter in if end user is present (true or false): "
122
+ end_user_present = gets.chomp
123
+
124
+ if user_guid == "" && member_guid != ""
125
+ puts "\nMust include user GUID when member GUID is entered."
126
+ exit
127
+ end
128
+
129
+ if user_guid == "" && end_user_present == "true"
130
+ puts "\n* Creating user *"
131
+
132
+ puts "\nPlease enter in an unique id: "
133
+ identifier = gets.chomp
134
+
135
+ user = ::Atrium::User.create :identifier => identifier, :is_disabled => nil, :metadata => nil
136
+ user_guid = user.guid
137
+ puts "\nCreated user: " + user_guid
138
+ end
139
+
140
+ if member_guid != "" && end_user_present == "true"
141
+ member = ::Atrium::Member.read :user_guid => user_guid, :member_guid => member_guid
142
+ member.aggregate
143
+ check_job_status(user_guid, member_guid, counter)
144
+ elsif member_guid != ""
145
+ read_aggregation_data(user_guid, member_guid)
146
+ elsif end_user_present == "true"
147
+ puts "\n* Creating member *"
148
+
149
+ institutions = ::Atrium::Institution.list
150
+ institutions.each do |institution|
151
+ puts institution.name + " : institution code = " + institution.code
152
+ end
153
+
154
+ puts "\nPlease enter in desired institution code: "
155
+ institution_code = gets.chomp
156
+
157
+ credentials = ::Atrium::Institution.credentials institution_code
158
+ credential_array = []
159
+ credentials.each do |credential|
160
+ puts "\nPlease enter in " + credential.label + ":"
161
+ response = gets.chomp
162
+ cred_pair = {}
163
+ cred_pair[:guid] = credential.guid
164
+ cred_pair[:value] = response
165
+ credential_array.push(cred_pair)
166
+ end
167
+
168
+ member = ::Atrium::Member.create :user_guid => user_guid, :institution_code => institution_code, :credentials => credential_array
169
+ member_guid = member.guid
170
+ puts "\nCreated member: " + member_guid
171
+
172
+ check_job_status(user_guid, member_guid, counter)
173
+ else
174
+ puts "\nEnd user must be present to create a new member"
175
+ exit
176
+ end
177
+
178
+ puts "\n* Deleting test user *"
179
+ user = ::Atrium::User.read :guid => user_guid
180
+ user.delete
181
+ puts "Deleted user: " + user.guid
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env ruby
2
+ require "atrium"
3
+
4
+ ::Atrium.configure do |config|
5
+ config.mx_client_id = "YOUR_MX_CLIENT_ID"
6
+ config.mx_api_key = "YOUR_MX_API_KEY"
7
+ end
8
+
9
+ puts "\n* Creating test user and member with \"CHALLENGED\" aggregation status *"
10
+ user = ::Atrium::User.create :identifier => nil, :is_disabled => nil, :metadata => nil
11
+ puts "Created user: " + user.guid
12
+
13
+ credential_one = {}
14
+ credential_one[:guid] = "CRD-9f61fb4c-912c-bd1e-b175-ccc7f0275cc1"
15
+ credential_one[:value] = "test_atrium"
16
+
17
+ credential_two = {}
18
+ credential_two[:guid] = "CRD-e3d7ea81-aac7-05e9-fbdd-4b493c6e474d"
19
+ credential_two[:value] = "challenge"
20
+
21
+ credential_array = []
22
+ credential_array.push(credential_one)
23
+ credential_array.push(credential_two)
24
+
25
+ member = ::Atrium::Member.create :user_guid => user.guid, :institution_code => "mxbank", :credentials => credential_array
26
+ puts "Created member: " + member.guid
27
+
28
+ sleep(1)
29
+
30
+ puts "\n* Retrieving member aggregation status *"
31
+ aggregation_response = member.aggregation_status
32
+ puts "Member aggregation status: " + aggregation_response.status
33
+
34
+ puts "\n* MFA Challenge *"
35
+ challenges = member.challenges
36
+ challenges.each do |challenge|
37
+ puts challenge.label
38
+ end
39
+
40
+ credential = {}
41
+ credential[:guid] = challenges[0].guid
42
+ credential[:value] = "correct"
43
+ challenge_responses = []
44
+ challenge_responses.push(credential)
45
+
46
+ puts "\n* MFA answered correctly, resuming aggregation *"
47
+ member.resume challenge_responses
48
+
49
+ sleep(1)
50
+
51
+ puts "\n* Retrieving member aggregation status *"
52
+ aggregation_response = member.aggregation_status
53
+ puts "Member aggregation status: " + aggregation_response.status
54
+
55
+ puts "\n* Deleting test user *"
56
+ user.delete
57
+ puts "Deleted user: " + user.guid
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env ruby
2
+ require "atrium"
3
+
4
+ ::Atrium.configure do |config|
5
+ config.mx_client_id = "YOUR_MX_CLIENT_ID"
6
+ config.mx_api_key = "YOUR_MX_API_KEY"
7
+ end
8
+
9
+ puts "\n* Creating user and member with \"DENIED\" aggregation status *"
10
+ user = ::Atrium::User.create :identifier => nil, :is_disabled => nil, :metadata => nil
11
+ puts "Created user: " + user.guid
12
+
13
+ credential_one = {}
14
+ credential_one[:guid] = "CRD-9f61fb4c-912c-bd1e-b175-ccc7f0275cc1"
15
+ credential_one[:value] = "test_atrium"
16
+
17
+ credential_two = {}
18
+ credential_two[:guid] = "CRD-e3d7ea81-aac7-05e9-fbdd-4b493c6e474d"
19
+ credential_two[:value] = "INVALID"
20
+
21
+ credential_array = []
22
+ credential_array.push(credential_one)
23
+ credential_array.push(credential_two)
24
+
25
+ member = ::Atrium::Member.create :user_guid => user.guid, :institution_code => "mxbank", :credentials => credential_array
26
+ puts "Created member: " + member.guid
27
+
28
+ sleep(1)
29
+
30
+ puts "\n* Retrieving member aggregation status *"
31
+ aggregation_response = member.aggregation_status
32
+ puts "Member aggregation status: " + aggregation_response.status
33
+
34
+ puts "\n* Updating credentials *"
35
+ credentials = ::Atrium::Institution.credentials "mxbank"
36
+
37
+ username_credential = {}
38
+ username_credential[:guid] = credentials[0].guid
39
+ username_credential[:value] = "test_atrium"
40
+
41
+ password_credential = {}
42
+ password_credential[:guid] = credentials[1].guid
43
+ password_credential[:value] = "password"
44
+
45
+ updated_credentials = []
46
+ updated_credentials.push(username_credential)
47
+ updated_credentials.push(password_credential)
48
+
49
+ member.update(:credentials => updated_credentials)
50
+ sleep(1)
51
+
52
+ puts "\n* Retrieving member aggregation status *"
53
+ aggregation_response = member.aggregation_status
54
+ puts "Member aggregation status: " + aggregation_response.status
55
+
56
+ puts "\n* Deleting test user *"
57
+ user.delete
58
+ puts "Deleted user: " + user.guid
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env ruby
2
+ require "atrium"
3
+
4
+ ::Atrium.configure do |config|
5
+ config.mx_client_id = "YOUR_MX_CLIENT_ID"
6
+ config.mx_api_key = "YOUR_MX_API_KEY"
7
+ end
8
+
9
+ puts "\n* Creating user *"
10
+ user = ::Atrium::User.create :identifier => nil, :is_disabled => nil, :metadata => nil
11
+ puts user.guid
12
+
13
+ puts "\n* Listing institutions with query string \"bank\" *"
14
+ name = "bank"
15
+ params = { :name => name }
16
+ institutions = ::Atrium::Institution.list :query_params => params
17
+ institutions.each do |institution|
18
+ puts institution.name + " : institution code = " + institution.code
19
+ end
20
+
21
+ puts "\n* Reading institution \"mxbank\" *"
22
+ institution = ::Atrium::Institution.read :institution_code => "mxbank"
23
+ puts institution.name
24
+
25
+ puts "\n* Reading institution credentials \"mxbank\" *"
26
+ credentials = ::Atrium::Institution.credentials "chase"
27
+ credentials.each do |credential|
28
+ puts credential.guid
29
+ end
30
+
31
+ puts "\n* Creating member *"
32
+
33
+ # Create credential JSON object
34
+ credential_one = {}
35
+ credential_one[:guid] = "CRD-9f61fb4c-912c-bd1e-b175-ccc7f0275cc1"
36
+ credential_one[:value] = "test_atrium"
37
+
38
+ # Create another credential JSON object
39
+ credential_two = {}
40
+ credential_two[:guid] = "CRD-e3d7ea81-aac7-05e9-fbdd-4b493c6e474d"
41
+ credential_two[:value] = "password"
42
+
43
+ # Create credential array from credential JSON Objects
44
+ credential_array = []
45
+ credential_array.push(credential_one)
46
+ credential_array.push(credential_two)
47
+
48
+ member = ::Atrium::Member.create :user_guid => user.guid, :institution_code => "mxbank", :credentials => credential_array
49
+ puts member.guid
50
+
51
+ puts "\n* Deleting test user *"
52
+ user.delete
53
+ puts "Deleted user: " + user.guid
@@ -134,7 +134,15 @@ module Atrium
134
134
 
135
135
  def credentials
136
136
  endpoint = "/users/#{user_guid}/members/#{guid}/credentials"
137
- ::Atrium.client.make_request(:get, endpoint)
137
+ credential_response = ::Atrium.client.make_request(:get, endpoint)
138
+
139
+ return nil if credential_response.nil?
140
+
141
+ credential_params = credential_response["credentials"]
142
+
143
+ credential_params.map do |credential|
144
+ ::Atrium::Credential.new(credential)
145
+ end
138
146
  end
139
147
 
140
148
  def transactions(options = {})
@@ -1,3 +1,3 @@
1
1
  module Atrium
2
- VERSION = "1.0.2".freeze
2
+ VERSION = "1.1.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atrium-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Carstens, Dan Jones, Zach Toolson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-15 00:00:00.000000000 Z
11
+ date: 2017-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_attr
@@ -167,6 +167,12 @@ files:
167
167
  - bin/console
168
168
  - bin/demo
169
169
  - bin/setup
170
+ - examples/accounts_and_transactions.rb
171
+ - examples/all_endpoints.rb
172
+ - examples/example_workflow.rb
173
+ - examples/multi_factor_authentication.rb
174
+ - examples/update_credentials.rb
175
+ - examples/user_and_member_creation.rb
170
176
  - lib/atrium.rb
171
177
  - lib/atrium/account.rb
172
178
  - lib/atrium/challenge.rb
@@ -202,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
202
208
  version: '0'
203
209
  requirements: []
204
210
  rubyforge_project:
205
- rubygems_version: 2.5.2
211
+ rubygems_version: 2.6.13
206
212
  signing_key:
207
213
  specification_version: 4
208
214
  summary: Ruby wrapper for the Atrium API by MX