bitpesa-sdk 0.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.
Files changed (633) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +8 -0
  3. data/Gemfile.lock +92 -0
  4. data/LICENSE +7 -0
  5. data/README.md +264 -0
  6. data/Rakefile +10 -0
  7. data/bitpesa-sdk.gemspec +46 -0
  8. data/docs/APILogsApi.md +141 -0
  9. data/docs/Account.md +9 -0
  10. data/docs/AccountBase.md +9 -0
  11. data/docs/AccountDebitsApi.md +199 -0
  12. data/docs/AccountListResponse.md +9 -0
  13. data/docs/AccountMeta.md +8 -0
  14. data/docs/AccountResponse.md +9 -0
  15. data/docs/AccountValidationApi.md +70 -0
  16. data/docs/AccountValidationError.md +8 -0
  17. data/docs/AccountValidationRequest.md +12 -0
  18. data/docs/AccountValidationResponse.md +9 -0
  19. data/docs/AccountValidationResult.md +8 -0
  20. data/docs/AccountsApi.md +128 -0
  21. data/docs/ApiLog.md +16 -0
  22. data/docs/ApiLogBase.md +16 -0
  23. data/docs/ApiLogListResponse.md +9 -0
  24. data/docs/ApiLogResponse.md +8 -0
  25. data/docs/Body.md +12 -0
  26. data/docs/Currency.md +17 -0
  27. data/docs/CurrencyBase.md +17 -0
  28. data/docs/CurrencyExchange.md +18 -0
  29. data/docs/CurrencyExchangeListResponse.md +8 -0
  30. data/docs/CurrencyInfoApi.md +182 -0
  31. data/docs/CurrencyListResponse.md +8 -0
  32. data/docs/CurrencyOpposite.md +18 -0
  33. data/docs/Debit.md +17 -0
  34. data/docs/DebitBase.md +12 -0
  35. data/docs/DebitErrorResponse.md +13 -0
  36. data/docs/DebitListRequest.md +8 -0
  37. data/docs/DebitListResponse.md +9 -0
  38. data/docs/DebitRequest.md +8 -0
  39. data/docs/DebitRequestWrapper.md +8 -0
  40. data/docs/DebitResponse.md +8 -0
  41. data/docs/DebitValidResponse.md +16 -0
  42. data/docs/DefaultDocument.md +16 -0
  43. data/docs/DefaultRecipient.md +11 -0
  44. data/docs/DefaultSender.md +24 -0
  45. data/docs/DefaultWebhook.md +11 -0
  46. data/docs/Document.md +17 -0
  47. data/docs/DocumentBase.md +15 -0
  48. data/docs/DocumentErrorResponse.md +16 -0
  49. data/docs/DocumentListResponse.md +9 -0
  50. data/docs/DocumentRequest.md +8 -0
  51. data/docs/DocumentResponse.md +8 -0
  52. data/docs/DocumentValidResponse.md +16 -0
  53. data/docs/DocumentWebhook.md +10 -0
  54. data/docs/DocumentsApi.md +199 -0
  55. data/docs/ErrorStatus.md +9 -0
  56. data/docs/FieldDescription.md +9 -0
  57. data/docs/FieldSelectValidation.md +9 -0
  58. data/docs/FieldValidation.md +10 -0
  59. data/docs/FullInvalidTransaction.md +12 -0
  60. data/docs/FullInvalidTransactionRequest.md +14 -0
  61. data/docs/FullValidTransaction.md +11 -0
  62. data/docs/FullValidTransactionRequest.md +12 -0
  63. data/docs/InlineResponse200.md +9 -0
  64. data/docs/InlineResponse2001.md +8 -0
  65. data/docs/InlineResponse20010.md +9 -0
  66. data/docs/InlineResponse20011.md +9 -0
  67. data/docs/InlineResponse20012.md +8 -0
  68. data/docs/InlineResponse20013.md +9 -0
  69. data/docs/InlineResponse20014.md +9 -0
  70. data/docs/InlineResponse20015.md +8 -0
  71. data/docs/InlineResponse20016.md +9 -0
  72. data/docs/InlineResponse20017.md +8 -0
  73. data/docs/InlineResponse20018.md +9 -0
  74. data/docs/InlineResponse20019.md +9 -0
  75. data/docs/InlineResponse2002.md +9 -0
  76. data/docs/InlineResponse20020.md +9 -0
  77. data/docs/InlineResponse20021.md +8 -0
  78. data/docs/InlineResponse20021Object.md +8 -0
  79. data/docs/InlineResponse20022.md +8 -0
  80. data/docs/InlineResponse20022Object.md +8 -0
  81. data/docs/InlineResponse20023.md +9 -0
  82. data/docs/InlineResponse20023Object.md +8 -0
  83. data/docs/InlineResponse20024.md +8 -0
  84. data/docs/InlineResponse20025.md +8 -0
  85. data/docs/InlineResponse20026.md +8 -0
  86. data/docs/InlineResponse20027.md +9 -0
  87. data/docs/InlineResponse20028.md +8 -0
  88. data/docs/InlineResponse20029.md +9 -0
  89. data/docs/InlineResponse2002Object.md +8 -0
  90. data/docs/InlineResponse2003.md +8 -0
  91. data/docs/InlineResponse20030.md +8 -0
  92. data/docs/InlineResponse20031.md +9 -0
  93. data/docs/InlineResponse20032.md +9 -0
  94. data/docs/InlineResponse20033.md +8 -0
  95. data/docs/InlineResponse20034.md +9 -0
  96. data/docs/InlineResponse20035.md +9 -0
  97. data/docs/InlineResponse20036.md +8 -0
  98. data/docs/InlineResponse20037.md +9 -0
  99. data/docs/InlineResponse20038.md +8 -0
  100. data/docs/InlineResponse20039.md +9 -0
  101. data/docs/InlineResponse2004.md +8 -0
  102. data/docs/InlineResponse20040.md +8 -0
  103. data/docs/InlineResponse2004Object.md +8 -0
  104. data/docs/InlineResponse2005.md +8 -0
  105. data/docs/InlineResponse2006.md +9 -0
  106. data/docs/InlineResponse2007.md +8 -0
  107. data/docs/InlineResponse2008.md +9 -0
  108. data/docs/InlineResponse2009.md +8 -0
  109. data/docs/InlineResponse201.md +8 -0
  110. data/docs/InlineResponse2011.md +8 -0
  111. data/docs/InlineResponse20110.md +8 -0
  112. data/docs/InlineResponse20111.md +8 -0
  113. data/docs/InlineResponse2012.md +8 -0
  114. data/docs/InlineResponse2013.md +8 -0
  115. data/docs/InlineResponse2014.md +8 -0
  116. data/docs/InlineResponse2015.md +8 -0
  117. data/docs/InlineResponse2016.md +8 -0
  118. data/docs/InlineResponse2017.md +8 -0
  119. data/docs/InlineResponse2018.md +8 -0
  120. data/docs/InlineResponse2019.md +8 -0
  121. data/docs/InlineResponse400.md +9 -0
  122. data/docs/InlineResponse4001.md +9 -0
  123. data/docs/InlineResponse422.md +8 -0
  124. data/docs/InlineResponse4221.md +8 -0
  125. data/docs/InlineResponse42210.md +8 -0
  126. data/docs/InlineResponse42211.md +8 -0
  127. data/docs/InlineResponse42212.md +8 -0
  128. data/docs/InlineResponse42213.md +8 -0
  129. data/docs/InlineResponse42214.md +8 -0
  130. data/docs/InlineResponse4221Meta.md +8 -0
  131. data/docs/InlineResponse4221Object.md +8 -0
  132. data/docs/InlineResponse4222.md +8 -0
  133. data/docs/InlineResponse4223.md +8 -0
  134. data/docs/InlineResponse4224.md +8 -0
  135. data/docs/InlineResponse4225.md +8 -0
  136. data/docs/InlineResponse4226.md +8 -0
  137. data/docs/InlineResponse4227.md +8 -0
  138. data/docs/InlineResponse4227Meta.md +8 -0
  139. data/docs/InlineResponse4228.md +8 -0
  140. data/docs/InlineResponse4228Meta.md +8 -0
  141. data/docs/InlineResponse4228Object.md +8 -0
  142. data/docs/InlineResponse4229.md +8 -0
  143. data/docs/InlineResponse422Meta.md +8 -0
  144. data/docs/InlineResponse422Object.md +8 -0
  145. data/docs/InvalidDebit.md +14 -0
  146. data/docs/InvalidDocument.md +17 -0
  147. data/docs/InvalidRecipient.md +12 -0
  148. data/docs/InvalidSender.md +25 -0
  149. data/docs/InvalidWebhook.md +11 -0
  150. data/docs/LogsApi.md +141 -0
  151. data/docs/Meta.md +8 -0
  152. data/docs/Meta2.md +8 -0
  153. data/docs/Meta2Pagination.md +12 -0
  154. data/docs/MetaPagination.md +12 -0
  155. data/docs/Object.md +9 -0
  156. data/docs/OppositePaymentMethod.md +13 -0
  157. data/docs/OppositePaymentMethodBase.md +13 -0
  158. data/docs/Pagination.md +12 -0
  159. data/docs/PaginationMeta.md +8 -0
  160. data/docs/PaginationPagination.md +12 -0
  161. data/docs/PayinMethod.md +12 -0
  162. data/docs/PayinMethodBase.md +12 -0
  163. data/docs/PayinMethodDetails.md +10 -0
  164. data/docs/PayinMethodDetailsBase.md +7 -0
  165. data/docs/PayinMethodDetailsMobile.md +9 -0
  166. data/docs/PayinMethodDetailsNGNBank.md +8 -0
  167. data/docs/PayinMethodRequest.md +8 -0
  168. data/docs/PayinMethodType.md +8 -0
  169. data/docs/PayinMethodTypeBase.md +8 -0
  170. data/docs/PaymentMethod.md +13 -0
  171. data/docs/PaymentMethodBase.md +15 -0
  172. data/docs/PaymentMethodListResponse.md +8 -0
  173. data/docs/PaymentMethodOpposite.md +14 -0
  174. data/docs/PaymentMethodsApi.md +124 -0
  175. data/docs/PayoutMethod.md +13 -0
  176. data/docs/PayoutMethodBankAccountTypeEnum.md +7 -0
  177. data/docs/PayoutMethodBase.md +10 -0
  178. data/docs/PayoutMethodDetails.md +26 -0
  179. data/docs/PayoutMethodDetailsBalance.md +8 -0
  180. data/docs/PayoutMethodDetailsBase.md +7 -0
  181. data/docs/PayoutMethodDetailsGHSBank.md +11 -0
  182. data/docs/PayoutMethodDetailsIBAN.md +12 -0
  183. data/docs/PayoutMethodDetailsMADCash.md +18 -0
  184. data/docs/PayoutMethodDetailsMobile.md +10 -0
  185. data/docs/PayoutMethodDetailsNGNBank.md +12 -0
  186. data/docs/PayoutMethodDetailsXOFMobile.md +11 -0
  187. data/docs/PayoutMethodErrorResponse.md +11 -0
  188. data/docs/PayoutMethodGenderEnum.md +7 -0
  189. data/docs/PayoutMethodIdentityCardTypeEnum.md +7 -0
  190. data/docs/PayoutMethodListResponse.md +9 -0
  191. data/docs/PayoutMethodMobileProviderEnum.md +7 -0
  192. data/docs/PayoutMethodRequest.md +8 -0
  193. data/docs/PayoutMethodResponse.md +8 -0
  194. data/docs/PayoutMethodValidResponse.md +11 -0
  195. data/docs/PayoutMethodWebhook.md +10 -0
  196. data/docs/PayoutMethodsApi.md +334 -0
  197. data/docs/Recipient.md +27 -0
  198. data/docs/RecipientBase.md +11 -0
  199. data/docs/RecipientErrorResponse.md +26 -0
  200. data/docs/RecipientListResponse.md +9 -0
  201. data/docs/RecipientRequest.md +8 -0
  202. data/docs/RecipientResponse.md +8 -0
  203. data/docs/RecipientState.md +7 -0
  204. data/docs/RecipientValidResponse.md +26 -0
  205. data/docs/RecipientWebhook.md +10 -0
  206. data/docs/RecipientsApi.md +212 -0
  207. data/docs/Sender.md +32 -0
  208. data/docs/SenderBase.md +30 -0
  209. data/docs/SenderErrorResponse.md +32 -0
  210. data/docs/SenderExistingRequest.md +8 -0
  211. data/docs/SenderFullRequest.md +30 -0
  212. data/docs/SenderListResponse.md +9 -0
  213. data/docs/SenderRequest.md +8 -0
  214. data/docs/SenderResponse.md +8 -0
  215. data/docs/SenderState.md +7 -0
  216. data/docs/SenderValidResponse.md +32 -0
  217. data/docs/SenderWebhook.md +10 -0
  218. data/docs/SendersApi.md +328 -0
  219. data/docs/Transaction.md +22 -0
  220. data/docs/TransactionBase.md +13 -0
  221. data/docs/TransactionErrorResponse.md +21 -0
  222. data/docs/TransactionListResponse.md +9 -0
  223. data/docs/TransactionRequest.md +8 -0
  224. data/docs/TransactionRequestBase.md +9 -0
  225. data/docs/TransactionRequestErrorResponse.md +10 -0
  226. data/docs/TransactionRequestRequest.md +9 -0
  227. data/docs/TransactionRequestValidResponse.md +10 -0
  228. data/docs/TransactionRequestsApi.md +199 -0
  229. data/docs/TransactionResponse.md +8 -0
  230. data/docs/TransactionState.md +7 -0
  231. data/docs/TransactionTraits.md +9 -0
  232. data/docs/TransactionValidResponse.md +21 -0
  233. data/docs/TransactionWebhook.md +10 -0
  234. data/docs/TransactionsApi.md +448 -0
  235. data/docs/ValidDebit.md +16 -0
  236. data/docs/ValidationErrorDescription.md +8 -0
  237. data/docs/Webhook.md +10 -0
  238. data/docs/WebhookBase.md +10 -0
  239. data/docs/WebhookDefinition.md +12 -0
  240. data/docs/WebhookDefinitionBase.md +10 -0
  241. data/docs/WebhookDefinitionErrorResponse.md +11 -0
  242. data/docs/WebhookDefinitionEventListResponse.md +8 -0
  243. data/docs/WebhookDefinitionListResponse.md +9 -0
  244. data/docs/WebhookDefinitionRequest.md +8 -0
  245. data/docs/WebhookDefinitionResponse.md +8 -0
  246. data/docs/WebhookDefinitionValidResponse.md +11 -0
  247. data/docs/WebhookErrorResponse.md +11 -0
  248. data/docs/WebhookLog.md +13 -0
  249. data/docs/WebhookLogBase.md +13 -0
  250. data/docs/WebhookLogBaseMetadata.md +17 -0
  251. data/docs/WebhookLogBaseMetadataParams.md +8 -0
  252. data/docs/WebhookLogBaseMetadataRequest.md +10 -0
  253. data/docs/WebhookLogBaseMetadataResponse.md +10 -0
  254. data/docs/WebhookLogListResponse.md +9 -0
  255. data/docs/WebhookLogMetadata.md +17 -0
  256. data/docs/WebhookLogMetadataParams.md +8 -0
  257. data/docs/WebhookLogMetadataRequest.md +10 -0
  258. data/docs/WebhookLogMetadataResponse.md +10 -0
  259. data/docs/WebhookLogResponse.md +8 -0
  260. data/docs/WebhookRequest.md +10 -0
  261. data/docs/WebhookValidResponse.md +11 -0
  262. data/docs/WebhooksApi.md +319 -0
  263. data/example/.LICENSE.un~ +0 -0
  264. data/example/.client.rb.un~ +0 -0
  265. data/example/client.rb +395 -0
  266. data/git_push.sh +55 -0
  267. data/lib/bitpesa-sdk/api/account_debits_api.rb +187 -0
  268. data/lib/bitpesa-sdk/api/account_validation_api.rb +79 -0
  269. data/lib/bitpesa-sdk/api/accounts_api.rb +135 -0
  270. data/lib/bitpesa-sdk/api/api_logs_api.rb +137 -0
  271. data/lib/bitpesa-sdk/api/currency_info_api.rb +167 -0
  272. data/lib/bitpesa-sdk/api/documents_api.rb +197 -0
  273. data/lib/bitpesa-sdk/api/logs_api.rb +137 -0
  274. data/lib/bitpesa-sdk/api/payment_methods_api.rb +119 -0
  275. data/lib/bitpesa-sdk/api/payout_methods_api.rb +321 -0
  276. data/lib/bitpesa-sdk/api/recipients_api.rb +221 -0
  277. data/lib/bitpesa-sdk/api/senders_api.rb +319 -0
  278. data/lib/bitpesa-sdk/api/transactions_api.rb +425 -0
  279. data/lib/bitpesa-sdk/api/webhooks_api.rb +299 -0
  280. data/lib/bitpesa-sdk/api_client.rb +449 -0
  281. data/lib/bitpesa-sdk/api_error.rb +61 -0
  282. data/lib/bitpesa-sdk/configuration.rb +220 -0
  283. data/lib/bitpesa-sdk/models/account.rb +206 -0
  284. data/lib/bitpesa-sdk/models/account_list_response.rb +206 -0
  285. data/lib/bitpesa-sdk/models/account_meta.rb +196 -0
  286. data/lib/bitpesa-sdk/models/account_response.rb +204 -0
  287. data/lib/bitpesa-sdk/models/account_validation_error.rb +196 -0
  288. data/lib/bitpesa-sdk/models/account_validation_request.rb +319 -0
  289. data/lib/bitpesa-sdk/models/account_validation_response.rb +204 -0
  290. data/lib/bitpesa-sdk/models/account_validation_result.rb +196 -0
  291. data/lib/bitpesa-sdk/models/api_log.rb +281 -0
  292. data/lib/bitpesa-sdk/models/api_log_list_response.rb +207 -0
  293. data/lib/bitpesa-sdk/models/api_log_response.rb +195 -0
  294. data/lib/bitpesa-sdk/models/currency.rb +286 -0
  295. data/lib/bitpesa-sdk/models/currency_exchange.rb +305 -0
  296. data/lib/bitpesa-sdk/models/currency_exchange_list_response.rb +198 -0
  297. data/lib/bitpesa-sdk/models/currency_list_response.rb +198 -0
  298. data/lib/bitpesa-sdk/models/currency_opposite.rb +303 -0
  299. data/lib/bitpesa-sdk/models/debit.rb +303 -0
  300. data/lib/bitpesa-sdk/models/debit_list_request.rb +197 -0
  301. data/lib/bitpesa-sdk/models/debit_list_response.rb +206 -0
  302. data/lib/bitpesa-sdk/models/debit_request.rb +195 -0
  303. data/lib/bitpesa-sdk/models/debit_request_wrapper.rb +221 -0
  304. data/lib/bitpesa-sdk/models/debit_response.rb +195 -0
  305. data/lib/bitpesa-sdk/models/document.rb +329 -0
  306. data/lib/bitpesa-sdk/models/document_list_response.rb +206 -0
  307. data/lib/bitpesa-sdk/models/document_request.rb +195 -0
  308. data/lib/bitpesa-sdk/models/document_response.rb +195 -0
  309. data/lib/bitpesa-sdk/models/document_webhook.rb +237 -0
  310. data/lib/bitpesa-sdk/models/error_status.rb +204 -0
  311. data/lib/bitpesa-sdk/models/field_description.rb +239 -0
  312. data/lib/bitpesa-sdk/models/field_select_validation.rb +206 -0
  313. data/lib/bitpesa-sdk/models/field_validation.rb +215 -0
  314. data/lib/bitpesa-sdk/models/pagination.rb +236 -0
  315. data/lib/bitpesa-sdk/models/pagination_meta.rb +195 -0
  316. data/lib/bitpesa-sdk/models/payin_method.rb +236 -0
  317. data/lib/bitpesa-sdk/models/payin_method_details.rb +251 -0
  318. data/lib/bitpesa-sdk/models/payin_method_details_mobile.rb +212 -0
  319. data/lib/bitpesa-sdk/models/payin_method_details_ngn_bank.rb +202 -0
  320. data/lib/bitpesa-sdk/models/payin_method_request.rb +195 -0
  321. data/lib/bitpesa-sdk/models/payment_method.rb +251 -0
  322. data/lib/bitpesa-sdk/models/payment_method_list_response.rb +197 -0
  323. data/lib/bitpesa-sdk/models/payment_method_opposite.rb +269 -0
  324. data/lib/bitpesa-sdk/models/payout_method.rb +249 -0
  325. data/lib/bitpesa-sdk/models/payout_method_bank_account_type_enum.rb +38 -0
  326. data/lib/bitpesa-sdk/models/payout_method_details.rb +456 -0
  327. data/lib/bitpesa-sdk/models/payout_method_details_balance.rb +196 -0
  328. data/lib/bitpesa-sdk/models/payout_method_details_ghs_bank.rb +243 -0
  329. data/lib/bitpesa-sdk/models/payout_method_details_iban.rb +252 -0
  330. data/lib/bitpesa-sdk/models/payout_method_details_mad_cash.rb +326 -0
  331. data/lib/bitpesa-sdk/models/payout_method_details_mobile.rb +229 -0
  332. data/lib/bitpesa-sdk/models/payout_method_details_ngn_bank.rb +257 -0
  333. data/lib/bitpesa-sdk/models/payout_method_details_xof_mobile.rb +243 -0
  334. data/lib/bitpesa-sdk/models/payout_method_gender_enum.rb +38 -0
  335. data/lib/bitpesa-sdk/models/payout_method_identity_card_type_enum.rb +39 -0
  336. data/lib/bitpesa-sdk/models/payout_method_list_response.rb +206 -0
  337. data/lib/bitpesa-sdk/models/payout_method_mobile_provider_enum.rb +38 -0
  338. data/lib/bitpesa-sdk/models/payout_method_request.rb +195 -0
  339. data/lib/bitpesa-sdk/models/payout_method_response.rb +195 -0
  340. data/lib/bitpesa-sdk/models/payout_method_webhook.rb +237 -0
  341. data/lib/bitpesa-sdk/models/recipient.rb +400 -0
  342. data/lib/bitpesa-sdk/models/recipient_list_response.rb +206 -0
  343. data/lib/bitpesa-sdk/models/recipient_request.rb +195 -0
  344. data/lib/bitpesa-sdk/models/recipient_response.rb +195 -0
  345. data/lib/bitpesa-sdk/models/recipient_state.rb +46 -0
  346. data/lib/bitpesa-sdk/models/recipient_webhook.rb +237 -0
  347. data/lib/bitpesa-sdk/models/sender.rb +513 -0
  348. data/lib/bitpesa-sdk/models/sender_list_response.rb +206 -0
  349. data/lib/bitpesa-sdk/models/sender_request.rb +195 -0
  350. data/lib/bitpesa-sdk/models/sender_response.rb +195 -0
  351. data/lib/bitpesa-sdk/models/sender_state.rb +42 -0
  352. data/lib/bitpesa-sdk/models/sender_webhook.rb +237 -0
  353. data/lib/bitpesa-sdk/models/transaction.rb +354 -0
  354. data/lib/bitpesa-sdk/models/transaction_list_response.rb +206 -0
  355. data/lib/bitpesa-sdk/models/transaction_request.rb +195 -0
  356. data/lib/bitpesa-sdk/models/transaction_response.rb +195 -0
  357. data/lib/bitpesa-sdk/models/transaction_state.rb +46 -0
  358. data/lib/bitpesa-sdk/models/transaction_traits.rb +207 -0
  359. data/lib/bitpesa-sdk/models/transaction_webhook.rb +237 -0
  360. data/lib/bitpesa-sdk/models/validation_error_description.rb +197 -0
  361. data/lib/bitpesa-sdk/models/webhook.rb +232 -0
  362. data/lib/bitpesa-sdk/models/webhook_definition.rb +250 -0
  363. data/lib/bitpesa-sdk/models/webhook_definition_event_list_response.rb +197 -0
  364. data/lib/bitpesa-sdk/models/webhook_definition_list_response.rb +206 -0
  365. data/lib/bitpesa-sdk/models/webhook_definition_request.rb +195 -0
  366. data/lib/bitpesa-sdk/models/webhook_definition_response.rb +195 -0
  367. data/lib/bitpesa-sdk/models/webhook_log.rb +243 -0
  368. data/lib/bitpesa-sdk/models/webhook_log_list_response.rb +207 -0
  369. data/lib/bitpesa-sdk/models/webhook_log_metadata.rb +283 -0
  370. data/lib/bitpesa-sdk/models/webhook_log_metadata_request.rb +218 -0
  371. data/lib/bitpesa-sdk/models/webhook_log_metadata_response.rb +219 -0
  372. data/lib/bitpesa-sdk/models/webhook_log_response.rb +195 -0
  373. data/lib/bitpesa-sdk/version.rb +15 -0
  374. data/lib/bitpesa-sdk.rb +142 -0
  375. data/spec/api/account_debits_api_spec.rb +70 -0
  376. data/spec/api/account_validation_api_spec.rb +47 -0
  377. data/spec/api/accounts_api_spec.rb +58 -0
  378. data/spec/api/api_logs_api_spec.rb +58 -0
  379. data/spec/api/currency_info_api_spec.rb +68 -0
  380. data/spec/api/documents_api_spec.rb +70 -0
  381. data/spec/api/logs_api_spec.rb +58 -0
  382. data/spec/api/payment_methods_api_spec.rb +57 -0
  383. data/spec/api/payout_methods_api_spec.rb +58 -0
  384. data/spec/api/recipients_api_spec.rb +74 -0
  385. data/spec/api/senders_api_spec.rb +95 -0
  386. data/spec/api/transaction_requests_api_spec.rb +76 -0
  387. data/spec/api/transactions_api_spec.rb +96 -0
  388. data/spec/api/webhooks_api_spec.rb +95 -0
  389. data/spec/api_client_spec.rb +226 -0
  390. data/spec/configuration_spec.rb +42 -0
  391. data/spec/models/account_base_spec.rb +48 -0
  392. data/spec/models/account_list_response_spec.rb +47 -0
  393. data/spec/models/account_meta_spec.rb +42 -0
  394. data/spec/models/account_response_spec.rb +47 -0
  395. data/spec/models/account_spec.rb +47 -0
  396. data/spec/models/account_validation_error_spec.rb +41 -0
  397. data/spec/models/account_validation_request_spec.rb +77 -0
  398. data/spec/models/account_validation_response_spec.rb +47 -0
  399. data/spec/models/account_validation_result_spec.rb +41 -0
  400. data/spec/models/api_log_base_spec.rb +90 -0
  401. data/spec/models/api_log_list_response_spec.rb +47 -0
  402. data/spec/models/api_log_response_spec.rb +41 -0
  403. data/spec/models/api_log_spec.rb +90 -0
  404. data/spec/models/body_spec.rb +58 -0
  405. data/spec/models/currency_base_spec.rb +84 -0
  406. data/spec/models/currency_exchange_list_response_spec.rb +41 -0
  407. data/spec/models/currency_exchange_spec.rb +101 -0
  408. data/spec/models/currency_list_response_spec.rb +41 -0
  409. data/spec/models/currency_opposite_spec.rb +101 -0
  410. data/spec/models/currency_spec.rb +84 -0
  411. data/spec/models/debit_base_spec.rb +66 -0
  412. data/spec/models/debit_error_response_spec.rb +72 -0
  413. data/spec/models/debit_list_request_spec.rb +41 -0
  414. data/spec/models/debit_list_response_spec.rb +47 -0
  415. data/spec/models/debit_request_spec.rb +66 -0
  416. data/spec/models/debit_request_wrapper_spec.rb +41 -0
  417. data/spec/models/debit_response_spec.rb +41 -0
  418. data/spec/models/debit_spec.rb +66 -0
  419. data/spec/models/debit_valid_response_spec.rb +72 -0
  420. data/spec/models/default_document_spec.rb +94 -0
  421. data/spec/models/default_recipient_spec.rb +60 -0
  422. data/spec/models/default_sender_spec.rb +142 -0
  423. data/spec/models/default_webhook_spec.rb +60 -0
  424. data/spec/models/document_base_spec.rb +88 -0
  425. data/spec/models/document_error_response_spec.rb +94 -0
  426. data/spec/models/document_list_response_spec.rb +47 -0
  427. data/spec/models/document_request_spec.rb +88 -0
  428. data/spec/models/document_response_spec.rb +41 -0
  429. data/spec/models/document_spec.rb +36 -0
  430. data/spec/models/document_valid_response_spec.rb +94 -0
  431. data/spec/models/document_webhook_spec.rb +53 -0
  432. data/spec/models/error_status_spec.rb +47 -0
  433. data/spec/models/field_description_spec.rb +51 -0
  434. data/spec/models/field_select_validation_spec.rb +47 -0
  435. data/spec/models/field_validation_spec.rb +53 -0
  436. data/spec/models/full_invalid_transaction_request_spec.rb +78 -0
  437. data/spec/models/full_invalid_transaction_spec.rb +66 -0
  438. data/spec/models/full_valid_transaction_request_spec.rb +66 -0
  439. data/spec/models/full_valid_transaction_spec.rb +60 -0
  440. data/spec/models/inline_response_200_10_spec.rb +42 -0
  441. data/spec/models/inline_response_200_11_spec.rb +48 -0
  442. data/spec/models/inline_response_200_12_spec.rb +42 -0
  443. data/spec/models/inline_response_200_13_spec.rb +48 -0
  444. data/spec/models/inline_response_200_14_spec.rb +42 -0
  445. data/spec/models/inline_response_200_15_spec.rb +48 -0
  446. data/spec/models/inline_response_200_16_spec.rb +48 -0
  447. data/spec/models/inline_response_200_17_spec.rb +48 -0
  448. data/spec/models/inline_response_200_18_spec.rb +42 -0
  449. data/spec/models/inline_response_200_19_spec.rb +48 -0
  450. data/spec/models/inline_response_200_1_spec.rb +48 -0
  451. data/spec/models/inline_response_200_20_spec.rb +42 -0
  452. data/spec/models/inline_response_200_21_object_spec.rb +42 -0
  453. data/spec/models/inline_response_200_21_spec.rb +42 -0
  454. data/spec/models/inline_response_200_22_object_spec.rb +42 -0
  455. data/spec/models/inline_response_200_22_spec.rb +42 -0
  456. data/spec/models/inline_response_200_23_object_spec.rb +42 -0
  457. data/spec/models/inline_response_200_23_spec.rb +48 -0
  458. data/spec/models/inline_response_200_24_spec.rb +42 -0
  459. data/spec/models/inline_response_200_25_spec.rb +42 -0
  460. data/spec/models/inline_response_200_26_spec.rb +42 -0
  461. data/spec/models/inline_response_200_27_spec.rb +48 -0
  462. data/spec/models/inline_response_200_28_spec.rb +42 -0
  463. data/spec/models/inline_response_200_29_spec.rb +48 -0
  464. data/spec/models/inline_response_200_2_object_spec.rb +42 -0
  465. data/spec/models/inline_response_200_2_spec.rb +42 -0
  466. data/spec/models/inline_response_200_30_spec.rb +42 -0
  467. data/spec/models/inline_response_200_31_spec.rb +48 -0
  468. data/spec/models/inline_response_200_32_spec.rb +42 -0
  469. data/spec/models/inline_response_200_33_spec.rb +48 -0
  470. data/spec/models/inline_response_200_34_spec.rb +42 -0
  471. data/spec/models/inline_response_200_35_spec.rb +48 -0
  472. data/spec/models/inline_response_200_36_spec.rb +48 -0
  473. data/spec/models/inline_response_200_37_spec.rb +48 -0
  474. data/spec/models/inline_response_200_38_spec.rb +42 -0
  475. data/spec/models/inline_response_200_39_spec.rb +48 -0
  476. data/spec/models/inline_response_200_3_spec.rb +48 -0
  477. data/spec/models/inline_response_200_40_spec.rb +42 -0
  478. data/spec/models/inline_response_200_4_object_spec.rb +42 -0
  479. data/spec/models/inline_response_200_4_spec.rb +42 -0
  480. data/spec/models/inline_response_200_5_spec.rb +42 -0
  481. data/spec/models/inline_response_200_6_spec.rb +42 -0
  482. data/spec/models/inline_response_200_7_spec.rb +48 -0
  483. data/spec/models/inline_response_200_8_spec.rb +42 -0
  484. data/spec/models/inline_response_200_9_spec.rb +48 -0
  485. data/spec/models/inline_response_200_spec.rb +48 -0
  486. data/spec/models/inline_response_201_10_spec.rb +42 -0
  487. data/spec/models/inline_response_201_11_spec.rb +42 -0
  488. data/spec/models/inline_response_201_1_spec.rb +42 -0
  489. data/spec/models/inline_response_201_2_spec.rb +42 -0
  490. data/spec/models/inline_response_201_3_spec.rb +42 -0
  491. data/spec/models/inline_response_201_4_spec.rb +42 -0
  492. data/spec/models/inline_response_201_5_spec.rb +42 -0
  493. data/spec/models/inline_response_201_6_spec.rb +42 -0
  494. data/spec/models/inline_response_201_7_spec.rb +42 -0
  495. data/spec/models/inline_response_201_8_spec.rb +42 -0
  496. data/spec/models/inline_response_201_9_spec.rb +42 -0
  497. data/spec/models/inline_response_201_spec.rb +42 -0
  498. data/spec/models/inline_response_400_1_spec.rb +48 -0
  499. data/spec/models/inline_response_400_spec.rb +48 -0
  500. data/spec/models/inline_response_422_10_spec.rb +42 -0
  501. data/spec/models/inline_response_422_11_spec.rb +42 -0
  502. data/spec/models/inline_response_422_12_spec.rb +42 -0
  503. data/spec/models/inline_response_422_13_spec.rb +42 -0
  504. data/spec/models/inline_response_422_14_spec.rb +42 -0
  505. data/spec/models/inline_response_422_1_meta_spec.rb +42 -0
  506. data/spec/models/inline_response_422_1_object_spec.rb +42 -0
  507. data/spec/models/inline_response_422_1_spec.rb +42 -0
  508. data/spec/models/inline_response_422_2_spec.rb +42 -0
  509. data/spec/models/inline_response_422_3_spec.rb +42 -0
  510. data/spec/models/inline_response_422_4_spec.rb +42 -0
  511. data/spec/models/inline_response_422_5_spec.rb +42 -0
  512. data/spec/models/inline_response_422_6_spec.rb +42 -0
  513. data/spec/models/inline_response_422_7_meta_spec.rb +42 -0
  514. data/spec/models/inline_response_422_7_spec.rb +42 -0
  515. data/spec/models/inline_response_422_8_meta_spec.rb +42 -0
  516. data/spec/models/inline_response_422_8_object_spec.rb +42 -0
  517. data/spec/models/inline_response_422_8_spec.rb +48 -0
  518. data/spec/models/inline_response_422_9_spec.rb +42 -0
  519. data/spec/models/inline_response_422_meta_spec.rb +42 -0
  520. data/spec/models/inline_response_422_object_spec.rb +42 -0
  521. data/spec/models/inline_response_422_spec.rb +48 -0
  522. data/spec/models/invalid_debit_spec.rb +78 -0
  523. data/spec/models/invalid_document_spec.rb +100 -0
  524. data/spec/models/invalid_recipient_spec.rb +66 -0
  525. data/spec/models/invalid_sender_spec.rb +148 -0
  526. data/spec/models/invalid_webhook_spec.rb +60 -0
  527. data/spec/models/meta_2_pagination_spec.rb +66 -0
  528. data/spec/models/meta_2_spec.rb +42 -0
  529. data/spec/models/meta_pagination_spec.rb +66 -0
  530. data/spec/models/meta_spec.rb +42 -0
  531. data/spec/models/object_spec.rb +48 -0
  532. data/spec/models/opposite_payment_method_base_spec.rb +72 -0
  533. data/spec/models/opposite_payment_method_spec.rb +72 -0
  534. data/spec/models/pagination_meta_spec.rb +41 -0
  535. data/spec/models/pagination_pagination_spec.rb +66 -0
  536. data/spec/models/pagination_spec.rb +42 -0
  537. data/spec/models/payin_method_base_spec.rb +66 -0
  538. data/spec/models/payin_method_details_base_spec.rb +36 -0
  539. data/spec/models/payin_method_details_mobile_spec.rb +48 -0
  540. data/spec/models/payin_method_details_ngn_bank_spec.rb +42 -0
  541. data/spec/models/payin_method_details_spec.rb +53 -0
  542. data/spec/models/payin_method_request_spec.rb +41 -0
  543. data/spec/models/payin_method_spec.rb +65 -0
  544. data/spec/models/payin_method_type_base_spec.rb +42 -0
  545. data/spec/models/payin_method_type_spec.rb +42 -0
  546. data/spec/models/payment_method_base_spec.rb +66 -0
  547. data/spec/models/payment_method_list_response_spec.rb +41 -0
  548. data/spec/models/payment_method_opposite_spec.rb +77 -0
  549. data/spec/models/payment_method_spec.rb +66 -0
  550. data/spec/models/payout_method_bank_account_type_enum_spec.rb +35 -0
  551. data/spec/models/payout_method_base_spec.rb +54 -0
  552. data/spec/models/payout_method_details_balance_spec.rb +42 -0
  553. data/spec/models/payout_method_details_base_spec.rb +36 -0
  554. data/spec/models/payout_method_details_ghs_bank_spec.rb +60 -0
  555. data/spec/models/payout_method_details_iban_spec.rb +66 -0
  556. data/spec/models/payout_method_details_mad_cash_spec.rb +110 -0
  557. data/spec/models/payout_method_details_mobile_spec.rb +54 -0
  558. data/spec/models/payout_method_details_ngn_bank_spec.rb +70 -0
  559. data/spec/models/payout_method_details_spec.rb +149 -0
  560. data/spec/models/payout_method_details_xof_mobile_spec.rb +64 -0
  561. data/spec/models/payout_method_error_response_spec.rb +60 -0
  562. data/spec/models/payout_method_gender_enum_spec.rb +35 -0
  563. data/spec/models/payout_method_identity_card_type_enum_spec.rb +35 -0
  564. data/spec/models/payout_method_list_response_spec.rb +47 -0
  565. data/spec/models/payout_method_mobile_provider_enum_spec.rb +35 -0
  566. data/spec/models/payout_method_request_spec.rb +54 -0
  567. data/spec/models/payout_method_response_spec.rb +54 -0
  568. data/spec/models/payout_method_spec.rb +72 -0
  569. data/spec/models/payout_method_valid_response_spec.rb +60 -0
  570. data/spec/models/payout_method_webhook_spec.rb +53 -0
  571. data/spec/models/recipient_base_spec.rb +54 -0
  572. data/spec/models/recipient_error_response_spec.rb +60 -0
  573. data/spec/models/recipient_list_response_spec.rb +47 -0
  574. data/spec/models/recipient_request_spec.rb +60 -0
  575. data/spec/models/recipient_response_spec.rb +138 -0
  576. data/spec/models/recipient_spec.rb +36 -0
  577. data/spec/models/recipient_state_spec.rb +35 -0
  578. data/spec/models/recipient_valid_response_spec.rb +60 -0
  579. data/spec/models/recipient_webhook_spec.rb +53 -0
  580. data/spec/models/sender_base_spec.rb +136 -0
  581. data/spec/models/sender_error_response_spec.rb +142 -0
  582. data/spec/models/sender_existing_request_spec.rb +42 -0
  583. data/spec/models/sender_full_request_spec.rb +136 -0
  584. data/spec/models/sender_list_response_spec.rb +47 -0
  585. data/spec/models/sender_request_spec.rb +136 -0
  586. data/spec/models/sender_response_spec.rb +142 -0
  587. data/spec/models/sender_spec.rb +36 -0
  588. data/spec/models/sender_state_spec.rb +35 -0
  589. data/spec/models/sender_valid_response_spec.rb +142 -0
  590. data/spec/models/sender_webhook_spec.rb +53 -0
  591. data/spec/models/transaction_base_spec.rb +60 -0
  592. data/spec/models/transaction_error_response_spec.rb +66 -0
  593. data/spec/models/transaction_list_response_spec.rb +47 -0
  594. data/spec/models/transaction_request_base_spec.rb +48 -0
  595. data/spec/models/transaction_request_error_response_spec.rb +54 -0
  596. data/spec/models/transaction_request_request_spec.rb +48 -0
  597. data/spec/models/transaction_request_spec.rb +48 -0
  598. data/spec/models/transaction_request_valid_response_spec.rb +54 -0
  599. data/spec/models/transaction_response_spec.rb +114 -0
  600. data/spec/models/transaction_spec.rb +60 -0
  601. data/spec/models/transaction_state_spec.rb +35 -0
  602. data/spec/models/transaction_traits_spec.rb +48 -0
  603. data/spec/models/transaction_valid_response_spec.rb +66 -0
  604. data/spec/models/transaction_webhook_spec.rb +53 -0
  605. data/spec/models/valid_debit_spec.rb +90 -0
  606. data/spec/models/validation_error_description_spec.rb +41 -0
  607. data/spec/models/webhook_base_spec.rb +54 -0
  608. data/spec/models/webhook_definition_base_spec.rb +54 -0
  609. data/spec/models/webhook_definition_error_response_spec.rb +60 -0
  610. data/spec/models/webhook_definition_event_list_response_spec.rb +41 -0
  611. data/spec/models/webhook_definition_list_response_spec.rb +47 -0
  612. data/spec/models/webhook_definition_request_spec.rb +54 -0
  613. data/spec/models/webhook_definition_response_spec.rb +41 -0
  614. data/spec/models/webhook_definition_spec.rb +65 -0
  615. data/spec/models/webhook_definition_valid_response_spec.rb +60 -0
  616. data/spec/models/webhook_error_response_spec.rb +60 -0
  617. data/spec/models/webhook_log_base_metadata_params_spec.rb +42 -0
  618. data/spec/models/webhook_log_base_metadata_request_spec.rb +54 -0
  619. data/spec/models/webhook_log_base_metadata_response_spec.rb +54 -0
  620. data/spec/models/webhook_log_base_metadata_spec.rb +96 -0
  621. data/spec/models/webhook_log_base_spec.rb +72 -0
  622. data/spec/models/webhook_log_list_response_spec.rb +47 -0
  623. data/spec/models/webhook_log_metadata_params_spec.rb +42 -0
  624. data/spec/models/webhook_log_metadata_request_spec.rb +54 -0
  625. data/spec/models/webhook_log_metadata_response_spec.rb +54 -0
  626. data/spec/models/webhook_log_metadata_spec.rb +96 -0
  627. data/spec/models/webhook_log_response_spec.rb +41 -0
  628. data/spec/models/webhook_log_spec.rb +72 -0
  629. data/spec/models/webhook_request_spec.rb +54 -0
  630. data/spec/models/webhook_spec.rb +54 -0
  631. data/spec/models/webhook_valid_response_spec.rb +60 -0
  632. data/spec/spec_helper.rb +111 -0
  633. metadata +1127 -0
@@ -0,0 +1,305 @@
1
+ =begin
2
+ #BitPesa API
3
+
4
+ #Reference documentation for the BitPesa API V1
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.0.0-beta2
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Bitpesa
16
+ class CurrencyExchange
17
+ # The currency code in 3-character alpha ISO 4217 currency format
18
+ attr_accessor :code
19
+
20
+ # Name of currency
21
+ attr_accessor :name
22
+
23
+ # Symbol of currency
24
+ attr_accessor :symbol
25
+
26
+ # Number of decimal points
27
+ attr_accessor :decimals
28
+
29
+ # Subunits in Unit (eg. there are 100 cents in 1 US Dollar)
30
+ attr_accessor :subunit_to_unit
31
+
32
+ # Is this a primary currency?
33
+ attr_accessor :primary
34
+
35
+ # The minimum amount allowed in a transaction
36
+ attr_accessor :min
37
+
38
+ # The maximum amount allowed in a transaction
39
+ attr_accessor :max
40
+
41
+ # The margin set for transactions in this currency
42
+ attr_accessor :margin
43
+
44
+ # The equivalent of the currency to 1 USD
45
+ attr_accessor :usd_equivalent
46
+
47
+ # Lists the currencies where you can exchange from this one
48
+ attr_accessor :opposites
49
+
50
+ # Attribute mapping from ruby-style variable name to JSON key.
51
+ def self.attribute_map
52
+ {
53
+ :'code' => :'code',
54
+ :'name' => :'name',
55
+ :'symbol' => :'symbol',
56
+ :'decimals' => :'decimals',
57
+ :'subunit_to_unit' => :'subunit_to_unit',
58
+ :'primary' => :'primary',
59
+ :'min' => :'min',
60
+ :'max' => :'max',
61
+ :'margin' => :'margin',
62
+ :'usd_equivalent' => :'usd_equivalent',
63
+ :'opposites' => :'opposites'
64
+ }
65
+ end
66
+
67
+ # Attribute type mapping.
68
+ def self.openapi_types
69
+ {
70
+ :'code' => :'String',
71
+ :'name' => :'String',
72
+ :'symbol' => :'String',
73
+ :'decimals' => :'Float',
74
+ :'subunit_to_unit' => :'String',
75
+ :'primary' => :'BOOLEAN',
76
+ :'min' => :'String',
77
+ :'max' => :'String',
78
+ :'margin' => :'String',
79
+ :'usd_equivalent' => :'String',
80
+ :'opposites' => :'Array<CurrencyOpposite>'
81
+ }
82
+ end
83
+
84
+ # List of class defined in allOf (OpenAPI v3)
85
+ def self.openapi_all_of
86
+ [
87
+ :'Currency'
88
+ ]
89
+ end
90
+
91
+ # Initializes the object
92
+ # @param [Hash] attributes Model attributes in the form of hash
93
+ def initialize(attributes = {})
94
+ return unless attributes.is_a?(Hash)
95
+
96
+ # convert string to symbol for hash key
97
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
98
+
99
+ if attributes.has_key?(:'code')
100
+ self.code = attributes[:'code']
101
+ end
102
+
103
+ if attributes.has_key?(:'name')
104
+ self.name = attributes[:'name']
105
+ end
106
+
107
+ if attributes.has_key?(:'symbol')
108
+ self.symbol = attributes[:'symbol']
109
+ end
110
+
111
+ if attributes.has_key?(:'decimals')
112
+ self.decimals = attributes[:'decimals']
113
+ end
114
+
115
+ if attributes.has_key?(:'subunit_to_unit')
116
+ self.subunit_to_unit = attributes[:'subunit_to_unit']
117
+ end
118
+
119
+ if attributes.has_key?(:'primary')
120
+ self.primary = attributes[:'primary']
121
+ end
122
+
123
+ if attributes.has_key?(:'min')
124
+ self.min = attributes[:'min']
125
+ end
126
+
127
+ if attributes.has_key?(:'max')
128
+ self.max = attributes[:'max']
129
+ end
130
+
131
+ if attributes.has_key?(:'margin')
132
+ self.margin = attributes[:'margin']
133
+ end
134
+
135
+ if attributes.has_key?(:'usd_equivalent')
136
+ self.usd_equivalent = attributes[:'usd_equivalent']
137
+ end
138
+
139
+ if attributes.has_key?(:'opposites')
140
+ if (value = attributes[:'opposites']).is_a?(Array)
141
+ self.opposites = value
142
+ end
143
+ end
144
+ end
145
+
146
+ # Show invalid properties with the reasons. Usually used together with valid?
147
+ # @return Array for valid properties with the reasons
148
+ def list_invalid_properties
149
+ invalid_properties = Array.new
150
+ invalid_properties
151
+ end
152
+
153
+ # Check to see if the all the properties in the model are valid
154
+ # @return true if the model is valid
155
+ def valid?
156
+ true
157
+ end
158
+
159
+ # Checks equality by comparing each attribute.
160
+ # @param [Object] Object to be compared
161
+ def ==(o)
162
+ return true if self.equal?(o)
163
+ self.class == o.class &&
164
+ code == o.code &&
165
+ name == o.name &&
166
+ symbol == o.symbol &&
167
+ decimals == o.decimals &&
168
+ subunit_to_unit == o.subunit_to_unit &&
169
+ primary == o.primary &&
170
+ min == o.min &&
171
+ max == o.max &&
172
+ margin == o.margin &&
173
+ usd_equivalent == o.usd_equivalent &&
174
+ opposites == o.opposites
175
+ end
176
+
177
+ # @see the `==` method
178
+ # @param [Object] Object to be compared
179
+ def eql?(o)
180
+ self == o
181
+ end
182
+
183
+ # Calculates hash code according to all attributes.
184
+ # @return [Fixnum] Hash code
185
+ def hash
186
+ [code, name, symbol, decimals, subunit_to_unit, primary, min, max, margin, usd_equivalent, opposites].hash
187
+ end
188
+
189
+ require 'active_support/core_ext/hash'
190
+ require 'active_support/hash_with_indifferent_access.rb'
191
+ # Builds the object from hash
192
+ # @param [Hash] attributes Model attributes in the form of hash
193
+ # @return [Object] Returns the model itself
194
+ def build_from_hash(attributes)
195
+ return nil unless attributes.is_a?(Hash)
196
+ self.class.openapi_types.each_pair do |key, type|
197
+ if type =~ /\AArray<(.*)>/i
198
+ # check to ensure the input is an array given that the the attribute
199
+ # is documented as an array but the input is not
200
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
201
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
202
+ end
203
+ elsif !attributes[self.class.attribute_map[key]].nil?
204
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
205
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
206
+ end
207
+
208
+ self
209
+ end
210
+
211
+ # Deserializes the data based on type
212
+ # @param string type Data type
213
+ # @param string value Value to be deserialized
214
+ # @return [Object] Deserialized data
215
+ def _deserialize(type, value)
216
+ case type.to_sym
217
+ when :DateTime
218
+ DateTime.parse(value)
219
+ when :Date
220
+ Date.parse(value)
221
+ when :String
222
+ value.to_s
223
+ when :Integer
224
+ value.to_i
225
+ when :Float
226
+ value.to_f
227
+ when :BOOLEAN
228
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
229
+ true
230
+ else
231
+ false
232
+ end
233
+ when :Object
234
+ # generic object (usually a Hash), return directly
235
+ value
236
+ when /\AArray<(?<inner_type>.+)>\z/
237
+ inner_type = Regexp.last_match[:inner_type]
238
+ value.map { |v| _deserialize(inner_type, v) }
239
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
240
+ k_type = Regexp.last_match[:k_type]
241
+ v_type = Regexp.last_match[:v_type]
242
+ {}.tap do |hash|
243
+ value.each do |k, v|
244
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
245
+ end
246
+ end
247
+ else # model
248
+ temp_model = Bitpesa.const_get(type).new
249
+ temp_model.build_from_hash(value)
250
+ end
251
+ end
252
+
253
+ # Returns the string representation of the object
254
+ # @return [String] String presentation of the object
255
+ def to_s
256
+ to_hash.to_s
257
+ end
258
+
259
+ # to_body is an alias to to_hash (backward compatibility)
260
+ # @return [Hash] Returns the object in the form of hash
261
+ def to_body
262
+ to_hash
263
+ end
264
+
265
+ # Returns the object in the form of hash
266
+ # @return [Hash] Returns the object in the form of hash
267
+ def to_hash
268
+ hash = {}
269
+ self.class.attribute_map.each_pair do |attr, param|
270
+ value = self.send(attr)
271
+ next if value.nil?
272
+ hash[param] = _to_hash(value)
273
+ end
274
+ ::ActiveSupport::HashWithIndifferentAccess.new(hash)
275
+ end
276
+
277
+ def [](key)
278
+ to_hash[key]
279
+ end
280
+
281
+ def dig(*args)
282
+ to_hash.dig(*args)
283
+ end
284
+
285
+ # Outputs non-array value in the form of hash
286
+ # For object, use to_hash. Otherwise, just return the value
287
+ # @param [Object] value Any valid value
288
+ # @return [Hash] Returns the value in the form of hash
289
+ def _to_hash(value)
290
+ if value.is_a?(Array)
291
+ value.compact.map { |v| _to_hash(v) }
292
+ elsif value.is_a?(Hash)
293
+ {}.tap do |hash|
294
+ value.each { |k, v| hash[k] = _to_hash(v) }
295
+ end
296
+ elsif value.respond_to? :to_hash
297
+ value.to_hash
298
+ else
299
+ value
300
+ end
301
+ end
302
+
303
+ end
304
+
305
+ end
@@ -0,0 +1,198 @@
1
+ =begin
2
+ #BitPesa API
3
+
4
+ #Reference documentation for the BitPesa API V1
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.0.0-beta2
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Bitpesa
16
+ # List of possible currency exchange pairs
17
+ class CurrencyExchangeListResponse
18
+ attr_accessor :object
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ :'object' => :'object'
24
+ }
25
+ end
26
+
27
+ # Attribute type mapping.
28
+ def self.openapi_types
29
+ {
30
+ :'object' => :'Array<CurrencyExchange>'
31
+ }
32
+ end
33
+
34
+ # Initializes the object
35
+ # @param [Hash] attributes Model attributes in the form of hash
36
+ def initialize(attributes = {})
37
+ return unless attributes.is_a?(Hash)
38
+
39
+ # convert string to symbol for hash key
40
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
41
+
42
+ if attributes.has_key?(:'object')
43
+ if (value = attributes[:'object']).is_a?(Array)
44
+ self.object = value
45
+ end
46
+ end
47
+ end
48
+
49
+ # Show invalid properties with the reasons. Usually used together with valid?
50
+ # @return Array for valid properties with the reasons
51
+ def list_invalid_properties
52
+ invalid_properties = Array.new
53
+ invalid_properties
54
+ end
55
+
56
+ # Check to see if the all the properties in the model are valid
57
+ # @return true if the model is valid
58
+ def valid?
59
+ true
60
+ end
61
+
62
+ # Checks equality by comparing each attribute.
63
+ # @param [Object] Object to be compared
64
+ def ==(o)
65
+ return true if self.equal?(o)
66
+ self.class == o.class &&
67
+ object == o.object
68
+ end
69
+
70
+ # @see the `==` method
71
+ # @param [Object] Object to be compared
72
+ def eql?(o)
73
+ self == o
74
+ end
75
+
76
+ # Calculates hash code according to all attributes.
77
+ # @return [Fixnum] Hash code
78
+ def hash
79
+ [object].hash
80
+ end
81
+
82
+ require 'active_support/core_ext/hash'
83
+ require 'active_support/hash_with_indifferent_access.rb'
84
+ # Builds the object from hash
85
+ # @param [Hash] attributes Model attributes in the form of hash
86
+ # @return [Object] Returns the model itself
87
+ def build_from_hash(attributes)
88
+ return nil unless attributes.is_a?(Hash)
89
+ self.class.openapi_types.each_pair do |key, type|
90
+ if type =~ /\AArray<(.*)>/i
91
+ # check to ensure the input is an array given that the the attribute
92
+ # is documented as an array but the input is not
93
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
94
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
95
+ end
96
+ elsif !attributes[self.class.attribute_map[key]].nil?
97
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
98
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
99
+ end
100
+
101
+ self
102
+ end
103
+
104
+ # Deserializes the data based on type
105
+ # @param string type Data type
106
+ # @param string value Value to be deserialized
107
+ # @return [Object] Deserialized data
108
+ def _deserialize(type, value)
109
+ case type.to_sym
110
+ when :DateTime
111
+ DateTime.parse(value)
112
+ when :Date
113
+ Date.parse(value)
114
+ when :String
115
+ value.to_s
116
+ when :Integer
117
+ value.to_i
118
+ when :Float
119
+ value.to_f
120
+ when :BOOLEAN
121
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
122
+ true
123
+ else
124
+ false
125
+ end
126
+ when :Object
127
+ # generic object (usually a Hash), return directly
128
+ value
129
+ when /\AArray<(?<inner_type>.+)>\z/
130
+ inner_type = Regexp.last_match[:inner_type]
131
+ value.map { |v| _deserialize(inner_type, v) }
132
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
133
+ k_type = Regexp.last_match[:k_type]
134
+ v_type = Regexp.last_match[:v_type]
135
+ {}.tap do |hash|
136
+ value.each do |k, v|
137
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
138
+ end
139
+ end
140
+ else # model
141
+ temp_model = Bitpesa.const_get(type).new
142
+ temp_model.build_from_hash(value)
143
+ end
144
+ end
145
+
146
+ # Returns the string representation of the object
147
+ # @return [String] String presentation of the object
148
+ def to_s
149
+ to_hash.to_s
150
+ end
151
+
152
+ # to_body is an alias to to_hash (backward compatibility)
153
+ # @return [Hash] Returns the object in the form of hash
154
+ def to_body
155
+ to_hash
156
+ end
157
+
158
+ # Returns the object in the form of hash
159
+ # @return [Hash] Returns the object in the form of hash
160
+ def to_hash
161
+ hash = {}
162
+ self.class.attribute_map.each_pair do |attr, param|
163
+ value = self.send(attr)
164
+ next if value.nil?
165
+ hash[param] = _to_hash(value)
166
+ end
167
+ ::ActiveSupport::HashWithIndifferentAccess.new(hash)
168
+ end
169
+
170
+ def [](key)
171
+ to_hash[key]
172
+ end
173
+
174
+ def dig(*args)
175
+ to_hash.dig(*args)
176
+ end
177
+
178
+ # Outputs non-array value in the form of hash
179
+ # For object, use to_hash. Otherwise, just return the value
180
+ # @param [Object] value Any valid value
181
+ # @return [Hash] Returns the value in the form of hash
182
+ def _to_hash(value)
183
+ if value.is_a?(Array)
184
+ value.compact.map { |v| _to_hash(v) }
185
+ elsif value.is_a?(Hash)
186
+ {}.tap do |hash|
187
+ value.each { |k, v| hash[k] = _to_hash(v) }
188
+ end
189
+ elsif value.respond_to? :to_hash
190
+ value.to_hash
191
+ else
192
+ value
193
+ end
194
+ end
195
+
196
+ end
197
+
198
+ end