k2-connect-ruby 3.1.0 → 4.0.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.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +31 -0
  3. data/.gitignore +2 -0
  4. data/Gemfile.lock +38 -5
  5. data/README.md +499 -198
  6. data/k2-connect-ruby.gemspec +39 -35
  7. data/lib/k2-connect-ruby/entity.rb +39 -9
  8. data/lib/k2-connect-ruby/http_client.rb +43 -0
  9. data/lib/k2-connect-ruby/k2_entity/k2_entity.rb +12 -11
  10. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/destination/destination_request.rb +27 -0
  11. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/destination/external_bank_account.rb +32 -0
  12. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/destination/external_mpesa_wallet.rb +38 -0
  13. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/destination/external_paybill.rb +31 -0
  14. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/destination/external_till.rb +30 -0
  15. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/destination/merchant_bank_account.rb +27 -0
  16. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/destination/merchant_mpesa_wallet.rb +27 -0
  17. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/external_recipient/bank_account.rb +17 -0
  18. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/external_recipient/mobile_wallet.rb +24 -0
  19. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/external_recipient/paybill.rb +17 -0
  20. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/external_recipient/recipient_request.rb +32 -0
  21. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/external_recipient/till.rb +17 -0
  22. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/external_recipient.rb +54 -0
  23. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_stk.rb +14 -31
  24. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/payment_link.rb +53 -0
  25. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/payment_links/payment_link_request.rb +43 -0
  26. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/reversal.rb +39 -0
  27. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/reversals/reversal_request.rb +39 -0
  28. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/send_money/send_money_request.rb +53 -0
  29. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/send_money.rb +73 -0
  30. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/stk_push/stk_push_request.rb +51 -0
  31. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/transfer_account/merchant_bank_account.rb +35 -0
  32. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/transfer_account/merchant_mpesa_wallet.rb +38 -0
  33. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/transfer_account/transfer_account_request.rb +25 -0
  34. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/transfer_account.rb +49 -0
  35. data/lib/k2-connect-ruby/k2_entity/k2_polling.rb +16 -13
  36. data/lib/k2-connect-ruby/k2_entity/k2_subscribe.rb +16 -14
  37. data/lib/k2-connect-ruby/k2_entity/k2_token.rb +14 -39
  38. data/lib/k2-connect-ruby/k2_entity/polling/polling_request.rb +48 -0
  39. data/lib/k2-connect-ruby/k2_entity/webhook/webhook_subscription_request.rb +66 -0
  40. data/lib/k2-connect-ruby/k2_errors.rb +15 -71
  41. data/lib/k2-connect-ruby/k2_services/base_service.rb +25 -0
  42. data/lib/k2-connect-ruby/k2_services/k2_client.rb +7 -6
  43. data/lib/k2-connect-ruby/k2_services/payloads/daraja_webhooks.rb +43 -0
  44. data/lib/k2-connect-ruby/k2_services/payloads/k2_transaction.rb +20 -18
  45. data/lib/k2-connect-ruby/k2_services/payloads/k2_webhooks.rb +36 -32
  46. data/lib/k2-connect-ruby/k2_services/payloads/transactions/incoming_payment.rb +31 -29
  47. data/lib/k2-connect-ruby/k2_services/payloads/transactions/outgoing_payment.rb +3 -1
  48. data/lib/k2-connect-ruby/k2_services/payloads/transactions/payment_link.rb +38 -0
  49. data/lib/k2-connect-ruby/k2_services/payloads/transactions/reversal.rb +35 -0
  50. data/lib/k2-connect-ruby/k2_services/payloads/transactions/send_money_payment.rb +25 -0
  51. data/lib/k2-connect-ruby/k2_services/payloads/transactions/transfer.rb +2 -0
  52. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/b2b_transaction_received.rb +9 -3
  53. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/b2b_transaction_reversed.rb +22 -0
  54. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/buygoods_transaction_received.rb +6 -0
  55. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/buygoods_transaction_reversed.rb +4 -0
  56. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/card_transaction_received.rb +18 -0
  57. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/card_transaction_reversed.rb +17 -0
  58. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/card_transaction_voided.rb +17 -0
  59. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/customer_created.rb +11 -7
  60. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/transfer_webhook.rb +50 -0
  61. data/lib/k2-connect-ruby/k2_services/send_introspect_token_request_service.rb +56 -0
  62. data/lib/k2-connect-ruby/k2_services/send_k2_connect_get_request_service.rb +42 -0
  63. data/lib/k2-connect-ruby/k2_services/send_k2_connect_post_request_service.rb +44 -0
  64. data/lib/k2-connect-ruby/k2_services/send_request_token_request_service.rb +55 -0
  65. data/lib/k2-connect-ruby/k2_services/send_revoke_token_request_service.rb +56 -0
  66. data/lib/k2-connect-ruby/k2_services/send_token_info_request_service.rb +44 -0
  67. data/lib/k2-connect-ruby/k2_services.rb +29 -0
  68. data/lib/k2-connect-ruby/k2_utilities/config/k2_config.rb +18 -26
  69. data/lib/k2-connect-ruby/k2_utilities/config/k2_config.yml +9 -10
  70. data/lib/k2-connect-ruby/k2_utilities/k2_authenticator.rb +12 -5
  71. data/lib/k2-connect-ruby/k2_utilities/k2_connection.rb +0 -49
  72. data/lib/k2-connect-ruby/k2_utilities/k2_connection_helper.rb +21 -0
  73. data/lib/k2-connect-ruby/k2_utilities/k2_process_result.rb +16 -15
  74. data/lib/k2-connect-ruby/k2_utilities/k2_process_webhook.rb +34 -21
  75. data/lib/k2-connect-ruby/k2_utilities/k2_url_parse.rb +3 -1
  76. data/lib/k2-connect-ruby/k2_utilities/phone_number_validator.rb +15 -0
  77. data/lib/k2-connect-ruby/k2_utilities.rb +9 -20
  78. data/lib/k2-connect-ruby/version.rb +1 -1
  79. data/lib/k2-connect-ruby.rb +14 -13
  80. metadata +101 -33
  81. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_pay.rb +0 -98
  82. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_settlement.rb +0 -48
  83. data/lib/k2-connect-ruby/k2_entity/k2_financial_entities/k2_transfer.rb +0 -44
  84. data/lib/k2-connect-ruby/k2_entity/k2_notification.rb +0 -40
  85. data/lib/k2-connect-ruby/k2_services/payload_process.rb +0 -19
  86. data/lib/k2-connect-ruby/k2_services/payloads/webhooks/settlement_webhook.rb +0 -44
  87. data/lib/k2-connect-ruby/k2_utilities/k2_validation.rb +0 -128
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5d5a8576589dfce78986a4841292a7f506e46a6e1910ccfdc903e4f79642260
4
- data.tar.gz: 90a30a81702d3313aa2343ae64e99a1cc4b854980957b80e309e1ae541ef430c
3
+ metadata.gz: 82dededa6abe9ac67a070c68fd0c1e1d4bd9f3fde78ba141864995d3071836ac
4
+ data.tar.gz: d471a6d6293283569fb858340d64a704e99d35ca0a634bb5f2ea30c2eb610f7a
5
5
  SHA512:
6
- metadata.gz: 0bce7f0ecbc5fe71ff18371dd445938060ff971c802e603b12d732fb450b32cdbfdfd73338c044e82d561b1706af5cba7d28c14e2fb875e5ee9d213d61d70cf3
7
- data.tar.gz: b5f804d9dec6874c8477e16e1e1bacde420e760f48c63a97eaf6573aa5826351e9ef8dfe10bd223e5986d7c3f37a7232af9973c9af5a20758423009aef4e828e
6
+ metadata.gz: 9b71b48d4536a98f8a226278fb1997f478601c352b6f1b0bf51189d4a6c83c289ae8e2ee8123cafe3710341fccb873d8519d4b78d2257fd3c60a47f47bcca237
7
+ data.tar.gz: d5ea542673790f8f061f60edf00be70f364fdd41bd7cac611097924f81ed3f6e65d6fcaabe1eff880876e6e7c325fde9cb32db42c407f67d6137ceace3eceeac
@@ -0,0 +1,31 @@
1
+ ## Background of changes
2
+
3
+ _Please include a summary of the changes being introduced by this PR._
4
+
5
+
6
+ ## Type of change
7
+
8
+ _Please tick off the options that apply._
9
+
10
+ - [ ] New feature (non-breaking change which adds functionality)
11
+ - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
12
+ - [ ] Bug fix (non-breaking change which fixes an issue)
13
+ - [ ] This change requires a documentation update
14
+ - [ ] This change requires Postman collection update
15
+ - [ ] This change requires updating the DEPLOYMENT_CHECKLIST
16
+
17
+ ## Checklist
18
+
19
+ _Please tick off the options that apply._
20
+
21
+ - [ ] My changes work as expected
22
+ - [ ] I have performed a self-review of my code
23
+ - [ ] I have updated the DEPLOYMENT_CHECKLIST
24
+ - [ ] I have made corresponding changes to the documentation
25
+ - [ ] I have made corresponding changes to Postman collection
26
+ - [ ] I have added automated tests that prove my fix is effective or that my feature works as expected
27
+
28
+ ## How has this been tested?
29
+
30
+ _Please outline the scenarios that were tested (Add screenshots if necessary)_
31
+
data/.gitignore CHANGED
@@ -63,6 +63,8 @@ build-iPhoneSimulator/
63
63
  # rubocop
64
64
  rubocop.html
65
65
  tmp
66
+ .rubocop.yml
67
+ .rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml
66
68
 
67
69
  # rubocop
68
70
  rubocop.html
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- k2-connect-ruby (3.1.0)
5
- activemodel (>= 7.2.2, < 8.1.1)
6
- activesupport (>= 7.2.2, < 8.1.1)
4
+ k2-connect-ruby (4.0.0)
5
+ activemodel (>= 7.2.2, <= 8.1.1)
6
+ activesupport (>= 7.2.2, <= 8.1.1)
7
7
  json (~> 2.8.2)
8
8
  rest-client (~> 2.1.0)
9
9
 
@@ -26,6 +26,7 @@ GEM
26
26
  tzinfo (~> 2.0, >= 2.0.5)
27
27
  addressable (2.8.7)
28
28
  public_suffix (>= 2.0.2, < 7.0)
29
+ ast (2.4.3)
29
30
  base64 (0.2.0)
30
31
  benchmark (0.4.0)
31
32
  bigdecimal (3.1.8)
@@ -63,6 +64,8 @@ GEM
63
64
  i18n (1.14.6)
64
65
  concurrent-ruby (~> 1.0)
65
66
  json (2.8.2)
67
+ language_server-protocol (3.17.0.5)
68
+ lint_roller (1.1.0)
66
69
  listen (3.9.0)
67
70
  rb-fsevent (~> 0.10, >= 0.10.3)
68
71
  rb-inotify (~> 0.9, >= 0.9.10)
@@ -79,14 +82,22 @@ GEM
79
82
  notiffany (0.1.3)
80
83
  nenv (~> 0.1)
81
84
  shellany (~> 0.0)
85
+ parallel (1.27.0)
86
+ parser (3.3.9.0)
87
+ ast (~> 2.4.1)
88
+ racc
89
+ prism (1.4.0)
82
90
  pry (0.15.0)
83
91
  coderay (~> 1.1)
84
92
  method_source (~> 1.0)
85
93
  public_suffix (6.0.1)
94
+ racc (1.8.1)
95
+ rainbow (3.1.1)
86
96
  rake (13.2.1)
87
97
  rb-fsevent (0.11.2)
88
98
  rb-inotify (0.11.1)
89
99
  ffi (~> 1.0)
100
+ regexp_parser (2.11.2)
90
101
  rest-client (2.1.0)
91
102
  http-accept (>= 1.7.0, < 2.0)
92
103
  http-cookie (>= 1.0.2, < 2.0)
@@ -109,12 +120,32 @@ GEM
109
120
  rspec (>= 3)
110
121
  terminal-notifier (>= 1.4)
111
122
  rspec-support (3.13.1)
123
+ rubocop (1.80.1)
124
+ json (~> 2.3)
125
+ language_server-protocol (~> 3.17.0.2)
126
+ lint_roller (~> 1.1.0)
127
+ parallel (~> 1.10)
128
+ parser (>= 3.3.0.2)
129
+ rainbow (>= 2.2.2, < 4.0)
130
+ regexp_parser (>= 2.9.3, < 3.0)
131
+ rubocop-ast (>= 1.46.0, < 2.0)
132
+ ruby-progressbar (~> 1.7)
133
+ unicode-display_width (>= 2.4.0, < 4.0)
134
+ rubocop-ast (1.46.0)
135
+ parser (>= 3.3.7.2)
136
+ prism (~> 1.4)
137
+ rubocop-shopify (2.17.1)
138
+ rubocop (~> 1.62)
139
+ ruby-progressbar (1.13.0)
112
140
  securerandom (0.3.2)
113
141
  shellany (0.0.1)
114
142
  terminal-notifier (2.0.0)
115
143
  thor (1.3.2)
116
144
  tzinfo (2.0.6)
117
145
  concurrent-ruby (~> 1.0)
146
+ unicode-display_width (3.1.5)
147
+ unicode-emoji (~> 4.0, >= 4.0.4)
148
+ unicode-emoji (4.0.4)
118
149
  vcr (6.3.1)
119
150
  base64
120
151
  webmock (3.24.0)
@@ -126,7 +157,7 @@ PLATFORMS
126
157
  ruby
127
158
 
128
159
  DEPENDENCIES
129
- bundler (~> 2.5.16)
160
+ bundler (~> 4.0.3)
130
161
  faker (~> 3.5.1)
131
162
  guard (~> 2.19)
132
163
  guard-rspec (~> 4.7.3)
@@ -134,8 +165,10 @@ DEPENDENCIES
134
165
  rake (~> 13.2.1)
135
166
  rspec (~> 3.13.0)
136
167
  rspec-nc (~> 0.3.0)
168
+ rubocop (~> 1.80.1)
169
+ rubocop-shopify (~> 2.17.1)
137
170
  vcr (~> 6.3.1)
138
171
  webmock (~> 3.24)
139
172
 
140
173
  BUNDLED WITH
141
- 2.5.16
174
+ 4.0.3