k2-connect-ruby 2.0.0 → 3.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 +4 -4
- data/.ruby-version +1 -0
- data/Gemfile.lock +78 -64
- data/README.md +70 -49
- data/k2-connect-ruby.gemspec +12 -11
- data/lib/k2-connect-ruby/{k2_entity/entity.rb → entity.rb} +5 -0
- data/lib/k2-connect-ruby/k2_entity/k2_entity.rb +24 -26
- data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_pay.rb +92 -98
- data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_settlement.rb +43 -44
- data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_stk.rb +43 -44
- data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_transfer.rb +35 -36
- data/lib/k2-connect-ruby/k2_entity/k2_notification.rb +34 -35
- data/lib/k2-connect-ruby/k2_entity/k2_polling.rb +32 -34
- data/lib/k2-connect-ruby/k2_entity/k2_subscribe.rb +34 -36
- data/lib/k2-connect-ruby/k2_entity/k2_token.rb +58 -54
- data/lib/k2-connect-ruby/k2_errors.rb +64 -62
- data/lib/k2-connect-ruby/k2_services/k2_client.rb +27 -0
- data/lib/k2-connect-ruby/k2_services/payload_process.rb +10 -5
- data/lib/k2-connect-ruby/k2_services/payloads/k2_transaction.rb +52 -46
- data/lib/k2-connect-ruby/k2_services/payloads/k2_webhooks.rb +57 -51
- data/lib/k2-connect-ruby/k2_services/payloads/transactions/incoming_payment.rb +50 -42
- data/lib/k2-connect-ruby/k2_services/payloads/transactions/outgoing_payment.rb +19 -11
- data/lib/k2-connect-ruby/k2_services/payloads/transactions/transfer.rb +16 -8
- data/lib/k2-connect-ruby/k2_services/payloads/webhooks/b2b_transaction_received.rb +18 -0
- data/lib/k2-connect-ruby/k2_services/payloads/webhooks/buygoods_transaction_received.rb +13 -0
- data/lib/k2-connect-ruby/k2_services/payloads/webhooks/buygoods_transaction_reversed.rb +13 -0
- data/lib/k2-connect-ruby/k2_services/payloads/webhooks/customer_created.rb +20 -12
- data/lib/k2-connect-ruby/k2_services/payloads/webhooks/settlement_webhook.rb +40 -32
- data/lib/k2-connect-ruby/k2_utilities/config/k2_config.rb +49 -46
- data/lib/k2-connect-ruby/k2_utilities/k2_authenticator.rb +19 -0
- data/lib/k2-connect-ruby/k2_utilities/k2_connection.rb +40 -32
- data/lib/k2-connect-ruby/k2_utilities/k2_process_result.rb +42 -37
- data/lib/k2-connect-ruby/k2_utilities/k2_process_webhook.rb +51 -50
- data/lib/k2-connect-ruby/k2_utilities/k2_url_parse.rb +11 -6
- data/lib/k2-connect-ruby/k2_utilities/k2_validation.rb +104 -102
- data/lib/k2-connect-ruby/{utilities.rb → k2_utilities.rb} +8 -8
- data/lib/k2-connect-ruby/version.rb +1 -1
- data/lib/k2-connect-ruby.rb +7 -25
- metadata +77 -49
- data/lib/k2-connect-ruby/k2_services/client/k2_client.rb +0 -24
- data/lib/k2-connect-ruby/k2_services/payloads/webhooks/b2b_received.rb +0 -10
- data/lib/k2-connect-ruby/k2_services/payloads/webhooks/buygoods_received.rb +0 -5
- data/lib/k2-connect-ruby/k2_services/payloads/webhooks/buygoods_reversal.rb +0 -5
- data/lib/k2-connect-ruby/k2_services/payloads/webhooks/m2m_transaction.rb +0 -8
- data/lib/k2-connect-ruby/k2_utilities/k2_authorize.rb +0 -14
- data/lib/k2-connect-ruby/k2_utilities/spec_modules/spec_config.rb +0 -41
metadata
CHANGED
|
@@ -1,127 +1,153 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: k2-connect-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- DavidKar1uk1
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 7.2.2
|
|
20
|
+
- - "<"
|
|
18
21
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
22
|
+
version: 8.1.1
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
26
|
requirements:
|
|
24
|
-
- - "
|
|
27
|
+
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
29
|
+
version: 7.2.2
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 8.1.1
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: activemodel
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 7.2.2
|
|
40
|
+
- - "<"
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: 8.1.1
|
|
43
|
+
type: :runtime
|
|
44
|
+
prerelease: false
|
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
46
|
+
requirements:
|
|
47
|
+
- - ">="
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
version: 7.2.2
|
|
50
|
+
- - "<"
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: 8.1.1
|
|
53
|
+
- !ruby/object:Gem::Dependency
|
|
54
|
+
name: rest-client
|
|
29
55
|
requirement: !ruby/object:Gem::Requirement
|
|
30
56
|
requirements:
|
|
31
57
|
- - "~>"
|
|
32
58
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
59
|
+
version: 2.1.0
|
|
34
60
|
type: :runtime
|
|
35
61
|
prerelease: false
|
|
36
62
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
63
|
requirements:
|
|
38
64
|
- - "~>"
|
|
39
65
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
66
|
+
version: 2.1.0
|
|
41
67
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
68
|
+
name: json
|
|
43
69
|
requirement: !ruby/object:Gem::Requirement
|
|
44
70
|
requirements:
|
|
45
71
|
- - "~>"
|
|
46
72
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
48
|
-
type: :
|
|
73
|
+
version: 2.8.2
|
|
74
|
+
type: :runtime
|
|
49
75
|
prerelease: false
|
|
50
76
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
77
|
requirements:
|
|
52
78
|
- - "~>"
|
|
53
79
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
80
|
+
version: 2.8.2
|
|
55
81
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
82
|
+
name: bundler
|
|
57
83
|
requirement: !ruby/object:Gem::Requirement
|
|
58
84
|
requirements:
|
|
59
85
|
- - "~>"
|
|
60
86
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 2.16
|
|
87
|
+
version: 2.5.16
|
|
62
88
|
type: :development
|
|
63
89
|
prerelease: false
|
|
64
90
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
91
|
requirements:
|
|
66
92
|
- - "~>"
|
|
67
93
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 2.16
|
|
94
|
+
version: 2.5.16
|
|
69
95
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: guard
|
|
96
|
+
name: guard
|
|
71
97
|
requirement: !ruby/object:Gem::Requirement
|
|
72
98
|
requirements:
|
|
73
99
|
- - "~>"
|
|
74
100
|
- !ruby/object:Gem::Version
|
|
75
|
-
version:
|
|
101
|
+
version: '2.19'
|
|
76
102
|
type: :development
|
|
77
103
|
prerelease: false
|
|
78
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
105
|
requirements:
|
|
80
106
|
- - "~>"
|
|
81
107
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
108
|
+
version: '2.19'
|
|
83
109
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
110
|
+
name: guard-rspec
|
|
85
111
|
requirement: !ruby/object:Gem::Requirement
|
|
86
112
|
requirements:
|
|
87
113
|
- - "~>"
|
|
88
114
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
90
|
-
type: :
|
|
115
|
+
version: 4.7.3
|
|
116
|
+
type: :development
|
|
91
117
|
prerelease: false
|
|
92
118
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
119
|
requirements:
|
|
94
120
|
- - "~>"
|
|
95
121
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
122
|
+
version: 4.7.3
|
|
97
123
|
- !ruby/object:Gem::Dependency
|
|
98
124
|
name: rake
|
|
99
125
|
requirement: !ruby/object:Gem::Requirement
|
|
100
126
|
requirements:
|
|
101
127
|
- - "~>"
|
|
102
128
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 13.
|
|
129
|
+
version: 13.2.1
|
|
104
130
|
type: :development
|
|
105
131
|
prerelease: false
|
|
106
132
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
133
|
requirements:
|
|
108
134
|
- - "~>"
|
|
109
135
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: 13.
|
|
136
|
+
version: 13.2.1
|
|
111
137
|
- !ruby/object:Gem::Dependency
|
|
112
138
|
name: rspec
|
|
113
139
|
requirement: !ruby/object:Gem::Requirement
|
|
114
140
|
requirements:
|
|
115
141
|
- - "~>"
|
|
116
142
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: 3.
|
|
143
|
+
version: 3.13.0
|
|
118
144
|
type: :development
|
|
119
145
|
prerelease: false
|
|
120
146
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
147
|
requirements:
|
|
122
148
|
- - "~>"
|
|
123
149
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: 3.
|
|
150
|
+
version: 3.13.0
|
|
125
151
|
- !ruby/object:Gem::Dependency
|
|
126
152
|
name: rspec-nc
|
|
127
153
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -142,42 +168,42 @@ dependencies:
|
|
|
142
168
|
requirements:
|
|
143
169
|
- - "~>"
|
|
144
170
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 6.
|
|
171
|
+
version: 6.3.1
|
|
146
172
|
type: :development
|
|
147
173
|
prerelease: false
|
|
148
174
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
175
|
requirements:
|
|
150
176
|
- - "~>"
|
|
151
177
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 6.
|
|
178
|
+
version: 6.3.1
|
|
153
179
|
- !ruby/object:Gem::Dependency
|
|
154
180
|
name: webmock
|
|
155
181
|
requirement: !ruby/object:Gem::Requirement
|
|
156
182
|
requirements:
|
|
157
183
|
- - "~>"
|
|
158
184
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: 3.
|
|
185
|
+
version: '3.24'
|
|
160
186
|
type: :development
|
|
161
187
|
prerelease: false
|
|
162
188
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
189
|
requirements:
|
|
164
190
|
- - "~>"
|
|
165
191
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: 3.
|
|
192
|
+
version: '3.24'
|
|
167
193
|
- !ruby/object:Gem::Dependency
|
|
168
|
-
name:
|
|
194
|
+
name: faker
|
|
169
195
|
requirement: !ruby/object:Gem::Requirement
|
|
170
196
|
requirements:
|
|
171
197
|
- - "~>"
|
|
172
198
|
- !ruby/object:Gem::Version
|
|
173
|
-
version:
|
|
174
|
-
type: :
|
|
199
|
+
version: 3.5.1
|
|
200
|
+
type: :development
|
|
175
201
|
prerelease: false
|
|
176
202
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
203
|
requirements:
|
|
178
204
|
- - "~>"
|
|
179
205
|
- !ruby/object:Gem::Version
|
|
180
|
-
version:
|
|
206
|
+
version: 3.5.1
|
|
181
207
|
description: Ruby SDK for the Kopo Kopo K2 Connect API, with webhook subscriptions,
|
|
182
208
|
STK Push, Pay and Settlement Transfer capabilities. Allows decomposition and break
|
|
183
209
|
down of results and webhooks returned from the K2 Connect APIx``.
|
|
@@ -190,6 +216,7 @@ files:
|
|
|
190
216
|
- ".gitignore"
|
|
191
217
|
- ".gitmodules"
|
|
192
218
|
- ".rspec"
|
|
219
|
+
- ".ruby-version"
|
|
193
220
|
- ".travis.yml"
|
|
194
221
|
- CHANGELOG.md
|
|
195
222
|
- CODE_OF_CONDUCT.md
|
|
@@ -203,7 +230,7 @@ files:
|
|
|
203
230
|
- bin/setup
|
|
204
231
|
- k2-connect-ruby.gemspec
|
|
205
232
|
- lib/k2-connect-ruby.rb
|
|
206
|
-
- lib/k2-connect-ruby/
|
|
233
|
+
- lib/k2-connect-ruby/entity.rb
|
|
207
234
|
- lib/k2-connect-ruby/k2_entity/k2_entity.rb
|
|
208
235
|
- lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_pay.rb
|
|
209
236
|
- lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_settlement.rb
|
|
@@ -214,29 +241,27 @@ files:
|
|
|
214
241
|
- lib/k2-connect-ruby/k2_entity/k2_subscribe.rb
|
|
215
242
|
- lib/k2-connect-ruby/k2_entity/k2_token.rb
|
|
216
243
|
- lib/k2-connect-ruby/k2_errors.rb
|
|
217
|
-
- lib/k2-connect-ruby/k2_services/
|
|
244
|
+
- lib/k2-connect-ruby/k2_services/k2_client.rb
|
|
218
245
|
- lib/k2-connect-ruby/k2_services/payload_process.rb
|
|
219
246
|
- lib/k2-connect-ruby/k2_services/payloads/k2_transaction.rb
|
|
220
247
|
- lib/k2-connect-ruby/k2_services/payloads/k2_webhooks.rb
|
|
221
248
|
- lib/k2-connect-ruby/k2_services/payloads/transactions/incoming_payment.rb
|
|
222
249
|
- lib/k2-connect-ruby/k2_services/payloads/transactions/outgoing_payment.rb
|
|
223
250
|
- lib/k2-connect-ruby/k2_services/payloads/transactions/transfer.rb
|
|
224
|
-
- lib/k2-connect-ruby/k2_services/payloads/webhooks/
|
|
225
|
-
- lib/k2-connect-ruby/k2_services/payloads/webhooks/
|
|
226
|
-
- lib/k2-connect-ruby/k2_services/payloads/webhooks/
|
|
251
|
+
- lib/k2-connect-ruby/k2_services/payloads/webhooks/b2b_transaction_received.rb
|
|
252
|
+
- lib/k2-connect-ruby/k2_services/payloads/webhooks/buygoods_transaction_received.rb
|
|
253
|
+
- lib/k2-connect-ruby/k2_services/payloads/webhooks/buygoods_transaction_reversed.rb
|
|
227
254
|
- lib/k2-connect-ruby/k2_services/payloads/webhooks/customer_created.rb
|
|
228
|
-
- lib/k2-connect-ruby/k2_services/payloads/webhooks/m2m_transaction.rb
|
|
229
255
|
- lib/k2-connect-ruby/k2_services/payloads/webhooks/settlement_webhook.rb
|
|
256
|
+
- lib/k2-connect-ruby/k2_utilities.rb
|
|
230
257
|
- lib/k2-connect-ruby/k2_utilities/config/k2_config.rb
|
|
231
258
|
- lib/k2-connect-ruby/k2_utilities/config/k2_config.yml
|
|
232
|
-
- lib/k2-connect-ruby/k2_utilities/
|
|
259
|
+
- lib/k2-connect-ruby/k2_utilities/k2_authenticator.rb
|
|
233
260
|
- lib/k2-connect-ruby/k2_utilities/k2_connection.rb
|
|
234
261
|
- lib/k2-connect-ruby/k2_utilities/k2_process_result.rb
|
|
235
262
|
- lib/k2-connect-ruby/k2_utilities/k2_process_webhook.rb
|
|
236
263
|
- lib/k2-connect-ruby/k2_utilities/k2_url_parse.rb
|
|
237
264
|
- lib/k2-connect-ruby/k2_utilities/k2_validation.rb
|
|
238
|
-
- lib/k2-connect-ruby/k2_utilities/spec_modules/spec_config.rb
|
|
239
|
-
- lib/k2-connect-ruby/utilities.rb
|
|
240
265
|
- lib/k2-connect-ruby/version.rb
|
|
241
266
|
homepage: https://github.com/kopokopo/k2-connect-ruby.git
|
|
242
267
|
licenses:
|
|
@@ -246,23 +271,26 @@ metadata:
|
|
|
246
271
|
homepage_uri: https://github.com/kopokopo/k2-connect-ruby.git
|
|
247
272
|
source_code_uri: https://github.com/kopokopo/k2-connect-ruby.git
|
|
248
273
|
changelog_uri: https://github.com/kopokopo/k2-connect-ruby.git/CHANGELOG.MD
|
|
249
|
-
post_install_message:
|
|
274
|
+
post_install_message:
|
|
250
275
|
rdoc_options: []
|
|
251
276
|
require_paths:
|
|
252
277
|
- lib
|
|
253
278
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
254
279
|
requirements:
|
|
255
|
-
- - "
|
|
280
|
+
- - ">="
|
|
281
|
+
- !ruby/object:Gem::Version
|
|
282
|
+
version: 3.3.5
|
|
283
|
+
- - "<="
|
|
256
284
|
- !ruby/object:Gem::Version
|
|
257
|
-
version:
|
|
285
|
+
version: 3.4.7
|
|
258
286
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
259
287
|
requirements:
|
|
260
288
|
- - ">="
|
|
261
289
|
- !ruby/object:Gem::Version
|
|
262
290
|
version: '0'
|
|
263
291
|
requirements: []
|
|
264
|
-
rubygems_version: 3.
|
|
265
|
-
signing_key:
|
|
292
|
+
rubygems_version: 3.5.16
|
|
293
|
+
signing_key:
|
|
266
294
|
specification_version: 4
|
|
267
295
|
summary: Ruby SDK for the Kopo Kopo K2 Connect API.
|
|
268
296
|
test_files: []
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# TODO: Uncomment the checking of the request scheme
|
|
2
|
-
class K2Client
|
|
3
|
-
attr_accessor :api_secret_key,
|
|
4
|
-
:hash_body,
|
|
5
|
-
:k2_signature
|
|
6
|
-
|
|
7
|
-
# Initialize method
|
|
8
|
-
def initialize(api_secret_key)
|
|
9
|
-
raise ArgumentError, 'No Secret Key Given!' if api_secret_key.blank?
|
|
10
|
-
@api_secret_key = api_secret_key
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
# Method for parsing the Entire Request. Come back to it later to trim. L8r call it set_client_variables
|
|
14
|
-
def parse_request(the_request)
|
|
15
|
-
raise ArgumentError, 'Nil Request Parameter Input!' if the_request.blank?
|
|
16
|
-
|
|
17
|
-
# The Response Body.
|
|
18
|
-
@hash_body = Yajl::Parser.parse(the_request.body.read.as_json)
|
|
19
|
-
# The Response Header
|
|
20
|
-
hash_header = Yajl::Parser.parse(the_request.env.select { |k, _| k =~ /^HTTP_/ }.to_json)
|
|
21
|
-
# The K2 Signature
|
|
22
|
-
@k2_signature = hash_header['HTTP_X_KOPOKOPO_SIGNATURE']
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
require 'openssl'
|
|
2
|
-
require 'active_support/security_utils'
|
|
3
|
-
# Module for Authenticating the Kopo Kopo Signature via HMAC
|
|
4
|
-
module K2Authenticator
|
|
5
|
-
# Compares HMAC signature with the key.
|
|
6
|
-
def self.authenticate(body, api_secret_key, signature)
|
|
7
|
-
raise ArgumentError, "Nil Authentication Argument!\n Check whether your Input is Empty" if body.blank? || api_secret_key.blank? || signature.blank?
|
|
8
|
-
|
|
9
|
-
digest = OpenSSL::Digest.new('sha256')
|
|
10
|
-
hmac = OpenSSL::HMAC.hexdigest(digest, api_secret_key, body.to_json)
|
|
11
|
-
raise ArgumentError, "Invalid Details Given!\n Ensure that your the Arguments Given are correct, namely:\n\t- The Response Body\n\t- Secret Key\n\t- Signature" unless ActiveSupport::SecurityUtils.secure_compare(hmac, signature)
|
|
12
|
-
true
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
module SpecConfig
|
|
2
|
-
TILL_SCOPE_EVENT_TYPES = %[buygoods_transaction_received b2b_transaction_received buygoods_transaction_reversed]
|
|
3
|
-
|
|
4
|
-
@specs = YAML.load_file(File.join('lib', 'k2-connect-ruby', 'k2_utilities', 'spec_modules', 'test_config.yml')).with_indifferent_access
|
|
5
|
-
|
|
6
|
-
def subscription_stub_request(event_type, url)
|
|
7
|
-
request_body = { event_type: event_type, url: url, secret: 'webhook_secret' }
|
|
8
|
-
SpecConfig.custom_stub_request('post', K2Config.path_url('webhook_subscriptions'), request_body, 200)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def webhook_structure(event_type, scope, scope_reference = nil)
|
|
12
|
-
{
|
|
13
|
-
event_type: event_type,
|
|
14
|
-
url: @callback_url,
|
|
15
|
-
scope: scope,
|
|
16
|
-
scope_reference: scope_reference,
|
|
17
|
-
}
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
class << self
|
|
21
|
-
def callback_url(context)
|
|
22
|
-
@specs[:callback_url][:"#{context}"]
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def custom_stub_request(request_type, path_url, request_body, response_code)
|
|
26
|
-
request_body = request_body.to_s
|
|
27
|
-
request_uri = path_url
|
|
28
|
-
request_headers = { Authorization: "Bearer access_token", Accept: "application/json" }
|
|
29
|
-
|
|
30
|
-
if request_type.eql?('post')
|
|
31
|
-
request_headers['Content-Type'] = 'application/json'
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# Stub Request
|
|
35
|
-
WebMock.stub_request(:"#{request_type}", request_uri)
|
|
36
|
-
.with(headers: request_headers, body: request_body)
|
|
37
|
-
.to_return(status: response_code)
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
end
|