cloudpayments-ruby 0.4.1

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 (179) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +50 -0
  4. data/README.md +250 -0
  5. data/SECURITY.md +23 -0
  6. data/lib/cloudpayments_ruby/client.rb +93 -0
  7. data/lib/cloudpayments_ruby/errors.rb +228 -0
  8. data/lib/cloudpayments_ruby/file_part.rb +58 -0
  9. data/lib/cloudpayments_ruby/internal/transport/base_client.rb +579 -0
  10. data/lib/cloudpayments_ruby/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/cloudpayments_ruby/internal/type/array_of.rb +168 -0
  12. data/lib/cloudpayments_ruby/internal/type/base_model.rb +536 -0
  13. data/lib/cloudpayments_ruby/internal/type/base_page.rb +55 -0
  14. data/lib/cloudpayments_ruby/internal/type/boolean.rb +77 -0
  15. data/lib/cloudpayments_ruby/internal/type/converter.rb +327 -0
  16. data/lib/cloudpayments_ruby/internal/type/enum.rb +133 -0
  17. data/lib/cloudpayments_ruby/internal/type/file_input.rb +111 -0
  18. data/lib/cloudpayments_ruby/internal/type/hash_of.rb +188 -0
  19. data/lib/cloudpayments_ruby/internal/type/request_parameters.rb +42 -0
  20. data/lib/cloudpayments_ruby/internal/type/union.rb +256 -0
  21. data/lib/cloudpayments_ruby/internal/type/unknown.rb +81 -0
  22. data/lib/cloudpayments_ruby/internal/util.rb +920 -0
  23. data/lib/cloudpayments_ruby/internal.rb +20 -0
  24. data/lib/cloudpayments_ruby/models/order_cancel_params.rb +22 -0
  25. data/lib/cloudpayments_ruby/models/order_cancel_response.rb +27 -0
  26. data/lib/cloudpayments_ruby/models/order_create_params.rb +152 -0
  27. data/lib/cloudpayments_ruby/models/order_create_response.rb +187 -0
  28. data/lib/cloudpayments_ruby/models/payment_auth_params.rb +211 -0
  29. data/lib/cloudpayments_ruby/models/payment_auth_response.rb +167 -0
  30. data/lib/cloudpayments_ruby/models/payment_charge_params.rb +211 -0
  31. data/lib/cloudpayments_ruby/models/payment_charge_response.rb +167 -0
  32. data/lib/cloudpayments_ruby/models/payment_confirm_params.rb +38 -0
  33. data/lib/cloudpayments_ruby/models/payment_confirm_response.rb +27 -0
  34. data/lib/cloudpayments_ruby/models/payment_post3ds_params.rb +30 -0
  35. data/lib/cloudpayments_ruby/models/payment_post3ds_response.rb +35 -0
  36. data/lib/cloudpayments_ruby/models/payment_refund_params.rb +38 -0
  37. data/lib/cloudpayments_ruby/models/payment_refund_response.rb +49 -0
  38. data/lib/cloudpayments_ruby/models/payment_void_params.rb +22 -0
  39. data/lib/cloudpayments_ruby/models/payment_void_response.rb +27 -0
  40. data/lib/cloudpayments_ruby/models/payments/token_auth_params.rb +197 -0
  41. data/lib/cloudpayments_ruby/models/payments/token_auth_response.rb +37 -0
  42. data/lib/cloudpayments_ruby/models/payments/token_charge_params.rb +197 -0
  43. data/lib/cloudpayments_ruby/models/payments/token_charge_response.rb +37 -0
  44. data/lib/cloudpayments_ruby/models/subscription.rb +212 -0
  45. data/lib/cloudpayments_ruby/models/subscription_cancel_params.rb +22 -0
  46. data/lib/cloudpayments_ruby/models/subscription_cancel_response.rb +27 -0
  47. data/lib/cloudpayments_ruby/models/subscription_create_params.rb +112 -0
  48. data/lib/cloudpayments_ruby/models/subscription_create_response.rb +35 -0
  49. data/lib/cloudpayments_ruby/models/subscription_find_params.rb +22 -0
  50. data/lib/cloudpayments_ruby/models/subscription_find_response.rb +37 -0
  51. data/lib/cloudpayments_ruby/models/subscription_get_params.rb +22 -0
  52. data/lib/cloudpayments_ruby/models/subscription_get_response.rb +35 -0
  53. data/lib/cloudpayments_ruby/models/subscription_update_params.rb +104 -0
  54. data/lib/cloudpayments_ruby/models/subscription_update_response.rb +35 -0
  55. data/lib/cloudpayments_ruby/models/transaction.rb +492 -0
  56. data/lib/cloudpayments_ruby/models.rb +76 -0
  57. data/lib/cloudpayments_ruby/request_options.rb +79 -0
  58. data/lib/cloudpayments_ruby/resources/orders.rb +95 -0
  59. data/lib/cloudpayments_ruby/resources/payments/tokens.rb +110 -0
  60. data/lib/cloudpayments_ruby/resources/payments.rb +232 -0
  61. data/lib/cloudpayments_ruby/resources/subscriptions.rb +178 -0
  62. data/lib/cloudpayments_ruby/version.rb +5 -0
  63. data/lib/cloudpayments_ruby.rb +91 -0
  64. data/manifest.yaml +17 -0
  65. data/rbi/cloudpayments_ruby/client.rbi +61 -0
  66. data/rbi/cloudpayments_ruby/errors.rbi +205 -0
  67. data/rbi/cloudpayments_ruby/file_part.rbi +37 -0
  68. data/rbi/cloudpayments_ruby/internal/transport/base_client.rbi +310 -0
  69. data/rbi/cloudpayments_ruby/internal/transport/pooled_net_requester.rbi +84 -0
  70. data/rbi/cloudpayments_ruby/internal/type/array_of.rbi +108 -0
  71. data/rbi/cloudpayments_ruby/internal/type/base_model.rbi +316 -0
  72. data/rbi/cloudpayments_ruby/internal/type/base_page.rbi +43 -0
  73. data/rbi/cloudpayments_ruby/internal/type/boolean.rbi +58 -0
  74. data/rbi/cloudpayments_ruby/internal/type/converter.rbi +225 -0
  75. data/rbi/cloudpayments_ruby/internal/type/enum.rbi +82 -0
  76. data/rbi/cloudpayments_ruby/internal/type/file_input.rbi +59 -0
  77. data/rbi/cloudpayments_ruby/internal/type/hash_of.rbi +108 -0
  78. data/rbi/cloudpayments_ruby/internal/type/request_parameters.rbi +33 -0
  79. data/rbi/cloudpayments_ruby/internal/type/union.rbi +134 -0
  80. data/rbi/cloudpayments_ruby/internal/type/unknown.rbi +58 -0
  81. data/rbi/cloudpayments_ruby/internal/util.rbi +487 -0
  82. data/rbi/cloudpayments_ruby/internal.rbi +18 -0
  83. data/rbi/cloudpayments_ruby/models/order_cancel_params.rbi +43 -0
  84. data/rbi/cloudpayments_ruby/models/order_cancel_response.rbi +42 -0
  85. data/rbi/cloudpayments_ruby/models/order_create_params.rbi +219 -0
  86. data/rbi/cloudpayments_ruby/models/order_create_response.rbi +255 -0
  87. data/rbi/cloudpayments_ruby/models/payment_auth_params.rbi +323 -0
  88. data/rbi/cloudpayments_ruby/models/payment_auth_response.rbi +278 -0
  89. data/rbi/cloudpayments_ruby/models/payment_charge_params.rbi +325 -0
  90. data/rbi/cloudpayments_ruby/models/payment_charge_response.rbi +278 -0
  91. data/rbi/cloudpayments_ruby/models/payment_confirm_params.rbi +65 -0
  92. data/rbi/cloudpayments_ruby/models/payment_confirm_response.rbi +42 -0
  93. data/rbi/cloudpayments_ruby/models/payment_post3ds_params.rbi +54 -0
  94. data/rbi/cloudpayments_ruby/models/payment_post3ds_response.rbi +63 -0
  95. data/rbi/cloudpayments_ruby/models/payment_refund_params.rbi +65 -0
  96. data/rbi/cloudpayments_ruby/models/payment_refund_response.rbi +97 -0
  97. data/rbi/cloudpayments_ruby/models/payment_void_params.rbi +46 -0
  98. data/rbi/cloudpayments_ruby/models/payment_void_response.rbi +42 -0
  99. data/rbi/cloudpayments_ruby/models/payments/token_auth_params.rbi +306 -0
  100. data/rbi/cloudpayments_ruby/models/payments/token_auth_response.rbi +65 -0
  101. data/rbi/cloudpayments_ruby/models/payments/token_charge_params.rbi +307 -0
  102. data/rbi/cloudpayments_ruby/models/payments/token_charge_response.rbi +65 -0
  103. data/rbi/cloudpayments_ruby/models/subscription.rbi +260 -0
  104. data/rbi/cloudpayments_ruby/models/subscription_cancel_params.rbi +43 -0
  105. data/rbi/cloudpayments_ruby/models/subscription_cancel_response.rbi +42 -0
  106. data/rbi/cloudpayments_ruby/models/subscription_create_params.rbi +143 -0
  107. data/rbi/cloudpayments_ruby/models/subscription_create_response.rbi +63 -0
  108. data/rbi/cloudpayments_ruby/models/subscription_find_params.rbi +46 -0
  109. data/rbi/cloudpayments_ruby/models/subscription_find_response.rbi +65 -0
  110. data/rbi/cloudpayments_ruby/models/subscription_get_params.rbi +43 -0
  111. data/rbi/cloudpayments_ruby/models/subscription_get_response.rbi +63 -0
  112. data/rbi/cloudpayments_ruby/models/subscription_update_params.rbi +156 -0
  113. data/rbi/cloudpayments_ruby/models/subscription_update_response.rbi +63 -0
  114. data/rbi/cloudpayments_ruby/models/transaction.rbi +594 -0
  115. data/rbi/cloudpayments_ruby/models.rbi +35 -0
  116. data/rbi/cloudpayments_ruby/request_options.rbi +64 -0
  117. data/rbi/cloudpayments_ruby/resources/orders.rbi +95 -0
  118. data/rbi/cloudpayments_ruby/resources/payments/tokens.rbi +117 -0
  119. data/rbi/cloudpayments_ruby/resources/payments.rbi +214 -0
  120. data/rbi/cloudpayments_ruby/resources/subscriptions.rbi +159 -0
  121. data/rbi/cloudpayments_ruby/version.rbi +5 -0
  122. data/sig/cloudpayments_ruby/client.rbs +33 -0
  123. data/sig/cloudpayments_ruby/errors.rbs +117 -0
  124. data/sig/cloudpayments_ruby/file_part.rbs +21 -0
  125. data/sig/cloudpayments_ruby/internal/transport/base_client.rbs +133 -0
  126. data/sig/cloudpayments_ruby/internal/transport/pooled_net_requester.rbs +48 -0
  127. data/sig/cloudpayments_ruby/internal/type/array_of.rbs +48 -0
  128. data/sig/cloudpayments_ruby/internal/type/base_model.rbs +106 -0
  129. data/sig/cloudpayments_ruby/internal/type/base_page.rbs +24 -0
  130. data/sig/cloudpayments_ruby/internal/type/boolean.rbs +26 -0
  131. data/sig/cloudpayments_ruby/internal/type/converter.rbs +79 -0
  132. data/sig/cloudpayments_ruby/internal/type/enum.rbs +32 -0
  133. data/sig/cloudpayments_ruby/internal/type/file_input.rbs +25 -0
  134. data/sig/cloudpayments_ruby/internal/type/hash_of.rbs +48 -0
  135. data/sig/cloudpayments_ruby/internal/type/request_parameters.rbs +20 -0
  136. data/sig/cloudpayments_ruby/internal/type/union.rbs +52 -0
  137. data/sig/cloudpayments_ruby/internal/type/unknown.rbs +26 -0
  138. data/sig/cloudpayments_ruby/internal/util.rbs +185 -0
  139. data/sig/cloudpayments_ruby/internal.rbs +10 -0
  140. data/sig/cloudpayments_ruby/models/order_cancel_params.rbs +23 -0
  141. data/sig/cloudpayments_ruby/models/order_cancel_response.rbs +17 -0
  142. data/sig/cloudpayments_ruby/models/order_create_params.rbs +136 -0
  143. data/sig/cloudpayments_ruby/models/order_create_response.rbs +146 -0
  144. data/sig/cloudpayments_ruby/models/payment_auth_params.rbs +197 -0
  145. data/sig/cloudpayments_ruby/models/payment_auth_response.rbs +151 -0
  146. data/sig/cloudpayments_ruby/models/payment_charge_params.rbs +197 -0
  147. data/sig/cloudpayments_ruby/models/payment_charge_response.rbs +151 -0
  148. data/sig/cloudpayments_ruby/models/payment_confirm_params.rbs +34 -0
  149. data/sig/cloudpayments_ruby/models/payment_confirm_response.rbs +17 -0
  150. data/sig/cloudpayments_ruby/models/payment_post3ds_params.rbs +28 -0
  151. data/sig/cloudpayments_ruby/models/payment_post3ds_response.rbs +32 -0
  152. data/sig/cloudpayments_ruby/models/payment_refund_params.rbs +34 -0
  153. data/sig/cloudpayments_ruby/models/payment_refund_response.rbs +46 -0
  154. data/sig/cloudpayments_ruby/models/payment_void_params.rbs +24 -0
  155. data/sig/cloudpayments_ruby/models/payment_void_response.rbs +17 -0
  156. data/sig/cloudpayments_ruby/models/payments/token_auth_params.rbs +183 -0
  157. data/sig/cloudpayments_ruby/models/payments/token_auth_response.rbs +38 -0
  158. data/sig/cloudpayments_ruby/models/payments/token_charge_params.rbs +183 -0
  159. data/sig/cloudpayments_ruby/models/payments/token_charge_response.rbs +38 -0
  160. data/sig/cloudpayments_ruby/models/subscription.rbs +158 -0
  161. data/sig/cloudpayments_ruby/models/subscription_cancel_params.rbs +23 -0
  162. data/sig/cloudpayments_ruby/models/subscription_cancel_response.rbs +17 -0
  163. data/sig/cloudpayments_ruby/models/subscription_create_params.rbs +87 -0
  164. data/sig/cloudpayments_ruby/models/subscription_create_response.rbs +32 -0
  165. data/sig/cloudpayments_ruby/models/subscription_find_params.rbs +24 -0
  166. data/sig/cloudpayments_ruby/models/subscription_find_response.rbs +36 -0
  167. data/sig/cloudpayments_ruby/models/subscription_get_params.rbs +23 -0
  168. data/sig/cloudpayments_ruby/models/subscription_get_response.rbs +32 -0
  169. data/sig/cloudpayments_ruby/models/subscription_update_params.rbs +96 -0
  170. data/sig/cloudpayments_ruby/models/subscription_update_response.rbs +32 -0
  171. data/sig/cloudpayments_ruby/models/transaction.rbs +369 -0
  172. data/sig/cloudpayments_ruby/models.rbs +33 -0
  173. data/sig/cloudpayments_ruby/request_options.rbs +36 -0
  174. data/sig/cloudpayments_ruby/resources/orders.rbs +33 -0
  175. data/sig/cloudpayments_ruby/resources/payments/tokens.rbs +41 -0
  176. data/sig/cloudpayments_ruby/resources/payments.rbs +70 -0
  177. data/sig/cloudpayments_ruby/resources/subscriptions.rbs +53 -0
  178. data/sig/cloudpayments_ruby/version.rbs +3 -0
  179. metadata +250 -0
@@ -0,0 +1,310 @@
1
+ # typed: strong
2
+
3
+ module CloudpaymentsRuby
4
+ module Internal
5
+ module Transport
6
+ # @api private
7
+ class BaseClient
8
+ extend CloudpaymentsRuby::Internal::Util::SorbetRuntimeSupport
9
+
10
+ abstract!
11
+
12
+ RequestComponents =
13
+ T.type_alias do
14
+ {
15
+ method: Symbol,
16
+ path: T.any(String, T::Array[String]),
17
+ query:
18
+ T.nilable(
19
+ T::Hash[String, T.nilable(T.any(T::Array[String], String))]
20
+ ),
21
+ headers:
22
+ T.nilable(
23
+ T::Hash[
24
+ String,
25
+ T.nilable(
26
+ T.any(
27
+ String,
28
+ Integer,
29
+ T::Array[T.nilable(T.any(String, Integer))]
30
+ )
31
+ )
32
+ ]
33
+ ),
34
+ body: T.nilable(T.anything),
35
+ unwrap:
36
+ T.nilable(
37
+ T.any(
38
+ Symbol,
39
+ Integer,
40
+ T::Array[T.any(Symbol, Integer)],
41
+ T.proc.params(arg0: T.anything).returns(T.anything)
42
+ )
43
+ ),
44
+ page:
45
+ T.nilable(
46
+ T::Class[
47
+ CloudpaymentsRuby::Internal::Type::BasePage[
48
+ CloudpaymentsRuby::Internal::Type::BaseModel
49
+ ]
50
+ ]
51
+ ),
52
+ stream: T.nilable(T::Class[T.anything]),
53
+ model:
54
+ T.nilable(CloudpaymentsRuby::Internal::Type::Converter::Input),
55
+ options: T.nilable(CloudpaymentsRuby::RequestOptions::OrHash)
56
+ }
57
+ end
58
+
59
+ RequestInput =
60
+ T.type_alias do
61
+ {
62
+ method: Symbol,
63
+ url: URI::Generic,
64
+ headers: T::Hash[String, String],
65
+ body: T.anything,
66
+ max_retries: Integer,
67
+ timeout: Float
68
+ }
69
+ end
70
+
71
+ # from whatwg fetch spec
72
+ MAX_REDIRECTS = 20
73
+
74
+ PLATFORM_HEADERS = T::Hash[String, String]
75
+
76
+ class << self
77
+ # @api private
78
+ sig do
79
+ params(
80
+ req:
81
+ CloudpaymentsRuby::Internal::Transport::BaseClient::RequestComponents
82
+ ).void
83
+ end
84
+ def validate!(req)
85
+ end
86
+
87
+ # @api private
88
+ sig do
89
+ params(status: Integer, headers: T::Hash[String, String]).returns(
90
+ T::Boolean
91
+ )
92
+ end
93
+ def should_retry?(status, headers:)
94
+ end
95
+
96
+ # @api private
97
+ sig do
98
+ params(
99
+ request:
100
+ CloudpaymentsRuby::Internal::Transport::BaseClient::RequestInput,
101
+ status: Integer,
102
+ response_headers: T::Hash[String, String]
103
+ ).returns(
104
+ CloudpaymentsRuby::Internal::Transport::BaseClient::RequestInput
105
+ )
106
+ end
107
+ def follow_redirect(request, status:, response_headers:)
108
+ end
109
+
110
+ # @api private
111
+ sig do
112
+ params(
113
+ status:
114
+ T.any(Integer, CloudpaymentsRuby::Errors::APIConnectionError),
115
+ stream: T.nilable(T::Enumerable[String])
116
+ ).void
117
+ end
118
+ def reap_connection!(status, stream:)
119
+ end
120
+ end
121
+
122
+ sig { returns(URI::Generic) }
123
+ attr_reader :base_url
124
+
125
+ sig { returns(Float) }
126
+ attr_reader :timeout
127
+
128
+ sig { returns(Integer) }
129
+ attr_reader :max_retries
130
+
131
+ sig { returns(Float) }
132
+ attr_reader :initial_retry_delay
133
+
134
+ sig { returns(Float) }
135
+ attr_reader :max_retry_delay
136
+
137
+ sig { returns(T::Hash[String, String]) }
138
+ attr_reader :headers
139
+
140
+ sig { returns(T.nilable(String)) }
141
+ attr_reader :idempotency_header
142
+
143
+ # @api private
144
+ sig do
145
+ returns(CloudpaymentsRuby::Internal::Transport::PooledNetRequester)
146
+ end
147
+ attr_reader :requester
148
+
149
+ # @api private
150
+ sig do
151
+ params(
152
+ base_url: String,
153
+ timeout: Float,
154
+ max_retries: Integer,
155
+ initial_retry_delay: Float,
156
+ max_retry_delay: Float,
157
+ headers:
158
+ T::Hash[
159
+ String,
160
+ T.nilable(
161
+ T.any(
162
+ String,
163
+ Integer,
164
+ T::Array[T.nilable(T.any(String, Integer))]
165
+ )
166
+ )
167
+ ],
168
+ idempotency_header: T.nilable(String)
169
+ ).returns(T.attached_class)
170
+ end
171
+ def self.new(
172
+ base_url:,
173
+ timeout: 0.0,
174
+ max_retries: 0,
175
+ initial_retry_delay: 0.0,
176
+ max_retry_delay: 0.0,
177
+ headers: {},
178
+ idempotency_header: nil
179
+ )
180
+ end
181
+
182
+ # @api private
183
+ sig { overridable.returns(T::Hash[String, String]) }
184
+ private def auth_headers
185
+ end
186
+
187
+ # @api private
188
+ sig { returns(String) }
189
+ private def user_agent
190
+ end
191
+
192
+ # @api private
193
+ sig { returns(String) }
194
+ private def generate_idempotency_key
195
+ end
196
+
197
+ # @api private
198
+ sig do
199
+ overridable
200
+ .params(
201
+ req:
202
+ CloudpaymentsRuby::Internal::Transport::BaseClient::RequestComponents,
203
+ opts: CloudpaymentsRuby::Internal::AnyHash
204
+ )
205
+ .returns(
206
+ CloudpaymentsRuby::Internal::Transport::BaseClient::RequestInput
207
+ )
208
+ end
209
+ private def build_request(req, opts)
210
+ end
211
+
212
+ # @api private
213
+ sig do
214
+ params(
215
+ headers: T::Hash[String, String],
216
+ retry_count: Integer
217
+ ).returns(Float)
218
+ end
219
+ private def retry_delay(headers, retry_count:)
220
+ end
221
+
222
+ # @api private
223
+ sig do
224
+ params(
225
+ request:
226
+ CloudpaymentsRuby::Internal::Transport::BaseClient::RequestInput,
227
+ redirect_count: Integer,
228
+ retry_count: Integer,
229
+ send_retry_header: T::Boolean
230
+ ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
231
+ end
232
+ def send_request(
233
+ request,
234
+ redirect_count:,
235
+ retry_count:,
236
+ send_retry_header:
237
+ )
238
+ end
239
+
240
+ # Execute the request specified by `req`. This is the method that all resource
241
+ # methods call into.
242
+ #
243
+ # @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: CloudpaymentsRuby::Internal::Type::Unknown, options: {})
244
+ sig do
245
+ params(
246
+ method: Symbol,
247
+ path: T.any(String, T::Array[String]),
248
+ query:
249
+ T.nilable(
250
+ T::Hash[String, T.nilable(T.any(T::Array[String], String))]
251
+ ),
252
+ headers:
253
+ T.nilable(
254
+ T::Hash[
255
+ String,
256
+ T.nilable(
257
+ T.any(
258
+ String,
259
+ Integer,
260
+ T::Array[T.nilable(T.any(String, Integer))]
261
+ )
262
+ )
263
+ ]
264
+ ),
265
+ body: T.nilable(T.anything),
266
+ unwrap:
267
+ T.nilable(
268
+ T.any(
269
+ Symbol,
270
+ Integer,
271
+ T::Array[T.any(Symbol, Integer)],
272
+ T.proc.params(arg0: T.anything).returns(T.anything)
273
+ )
274
+ ),
275
+ page:
276
+ T.nilable(
277
+ T::Class[
278
+ CloudpaymentsRuby::Internal::Type::BasePage[
279
+ CloudpaymentsRuby::Internal::Type::BaseModel
280
+ ]
281
+ ]
282
+ ),
283
+ stream: T.nilable(T::Class[T.anything]),
284
+ model:
285
+ T.nilable(CloudpaymentsRuby::Internal::Type::Converter::Input),
286
+ options: T.nilable(CloudpaymentsRuby::RequestOptions::OrHash)
287
+ ).returns(T.anything)
288
+ end
289
+ def request(
290
+ method,
291
+ path,
292
+ query: {},
293
+ headers: {},
294
+ body: nil,
295
+ unwrap: nil,
296
+ page: nil,
297
+ stream: nil,
298
+ model: CloudpaymentsRuby::Internal::Type::Unknown,
299
+ options: {}
300
+ )
301
+ end
302
+
303
+ # @api private
304
+ sig { returns(String) }
305
+ def inspect
306
+ end
307
+ end
308
+ end
309
+ end
310
+ end
@@ -0,0 +1,84 @@
1
+ # typed: strong
2
+
3
+ module CloudpaymentsRuby
4
+ module Internal
5
+ module Transport
6
+ # @api private
7
+ class PooledNetRequester
8
+ extend CloudpaymentsRuby::Internal::Util::SorbetRuntimeSupport
9
+
10
+ Request =
11
+ T.type_alias do
12
+ {
13
+ method: Symbol,
14
+ url: URI::Generic,
15
+ headers: T::Hash[String, String],
16
+ body: T.anything,
17
+ deadline: Float
18
+ }
19
+ end
20
+
21
+ # from the golang stdlib
22
+ # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
23
+ KEEP_ALIVE_TIMEOUT = 30
24
+
25
+ DEFAULT_MAX_CONNECTIONS = T.let(T.unsafe(nil), Integer)
26
+
27
+ class << self
28
+ # @api private
29
+ sig do
30
+ params(cert_store: OpenSSL::X509::Store, url: URI::Generic).returns(
31
+ Net::HTTP
32
+ )
33
+ end
34
+ def connect(cert_store:, url:)
35
+ end
36
+
37
+ # @api private
38
+ sig { params(conn: Net::HTTP, deadline: Float).void }
39
+ def calibrate_socket_timeout(conn, deadline)
40
+ end
41
+
42
+ # @api private
43
+ sig do
44
+ params(
45
+ request:
46
+ CloudpaymentsRuby::Internal::Transport::PooledNetRequester::Request,
47
+ blk: T.proc.params(arg0: String).void
48
+ ).returns([Net::HTTPGenericRequest, T.proc.void])
49
+ end
50
+ def build_request(request, &blk)
51
+ end
52
+ end
53
+
54
+ # @api private
55
+ sig do
56
+ params(
57
+ url: URI::Generic,
58
+ deadline: Float,
59
+ blk: T.proc.params(arg0: Net::HTTP).void
60
+ ).void
61
+ end
62
+ private def with_pool(url, deadline:, &blk)
63
+ end
64
+
65
+ # @api private
66
+ sig do
67
+ params(
68
+ request:
69
+ CloudpaymentsRuby::Internal::Transport::PooledNetRequester::Request
70
+ ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
71
+ end
72
+ def execute(request)
73
+ end
74
+
75
+ # @api private
76
+ sig { params(size: Integer).returns(T.attached_class) }
77
+ def self.new(
78
+ size: CloudpaymentsRuby::Internal::Transport::PooledNetRequester::DEFAULT_MAX_CONNECTIONS
79
+ )
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,108 @@
1
+ # typed: strong
2
+
3
+ module CloudpaymentsRuby
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # Array of items of a given type.
9
+ class ArrayOf
10
+ include CloudpaymentsRuby::Internal::Type::Converter
11
+ include CloudpaymentsRuby::Internal::Util::SorbetRuntimeSupport
12
+
13
+ abstract!
14
+
15
+ Elem = type_member(:out)
16
+
17
+ sig do
18
+ params(
19
+ type_info:
20
+ T.any(
21
+ CloudpaymentsRuby::Internal::AnyHash,
22
+ T.proc.returns(
23
+ CloudpaymentsRuby::Internal::Type::Converter::Input
24
+ ),
25
+ CloudpaymentsRuby::Internal::Type::Converter::Input
26
+ ),
27
+ spec: CloudpaymentsRuby::Internal::AnyHash
28
+ ).returns(T.attached_class)
29
+ end
30
+ def self.[](type_info, spec = {})
31
+ end
32
+
33
+ sig { params(other: T.anything).returns(T::Boolean) }
34
+ def ===(other)
35
+ end
36
+
37
+ sig { params(other: T.anything).returns(T::Boolean) }
38
+ def ==(other)
39
+ end
40
+
41
+ sig { returns(Integer) }
42
+ def hash
43
+ end
44
+
45
+ # @api private
46
+ sig do
47
+ override
48
+ .params(
49
+ value: T.any(T::Array[T.anything], T.anything),
50
+ state: CloudpaymentsRuby::Internal::Type::Converter::CoerceState
51
+ )
52
+ .returns(T.any(T::Array[T.anything], T.anything))
53
+ end
54
+ def coerce(value, state:)
55
+ end
56
+
57
+ # @api private
58
+ sig do
59
+ override
60
+ .params(
61
+ value: T.any(T::Array[T.anything], T.anything),
62
+ state: CloudpaymentsRuby::Internal::Type::Converter::DumpState
63
+ )
64
+ .returns(T.any(T::Array[T.anything], T.anything))
65
+ end
66
+ def dump(value, state:)
67
+ end
68
+
69
+ # @api private
70
+ sig { returns(T.anything) }
71
+ def to_sorbet_type
72
+ end
73
+
74
+ # @api private
75
+ sig { returns(Elem) }
76
+ protected def item_type
77
+ end
78
+
79
+ # @api private
80
+ sig { returns(T::Boolean) }
81
+ protected def nilable?
82
+ end
83
+
84
+ # @api private
85
+ sig do
86
+ params(
87
+ type_info:
88
+ T.any(
89
+ CloudpaymentsRuby::Internal::AnyHash,
90
+ T.proc.returns(
91
+ CloudpaymentsRuby::Internal::Type::Converter::Input
92
+ ),
93
+ CloudpaymentsRuby::Internal::Type::Converter::Input
94
+ ),
95
+ spec: CloudpaymentsRuby::Internal::AnyHash
96
+ ).void
97
+ end
98
+ def initialize(type_info, spec = {})
99
+ end
100
+
101
+ # @api private
102
+ sig { params(depth: Integer).returns(String) }
103
+ def inspect(depth: 0)
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end