mundi_api 0.9.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 (123) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +2186 -0
  4. data/lib/mundi_api.rb +137 -0
  5. data/lib/mundi_api/api_helper.rb +209 -0
  6. data/lib/mundi_api/configuration.rb +25 -0
  7. data/lib/mundi_api/controllers/base_controller.rb +61 -0
  8. data/lib/mundi_api/controllers/charges_controller.rb +359 -0
  9. data/lib/mundi_api/controllers/customers_controller.rb +758 -0
  10. data/lib/mundi_api/controllers/invoices_controller.rb +184 -0
  11. data/lib/mundi_api/controllers/orders_controller.rb +171 -0
  12. data/lib/mundi_api/controllers/plans_controller.rb +387 -0
  13. data/lib/mundi_api/controllers/subscriptions_controller.rb +648 -0
  14. data/lib/mundi_api/controllers/tokens_controller.rb +87 -0
  15. data/lib/mundi_api/exceptions/api_exception.rb +18 -0
  16. data/lib/mundi_api/exceptions/error_exception.rb +37 -0
  17. data/lib/mundi_api/http/auth/basic_auth.rb +20 -0
  18. data/lib/mundi_api/http/faraday_client.rb +55 -0
  19. data/lib/mundi_api/http/http_call_back.rb +22 -0
  20. data/lib/mundi_api/http/http_client.rb +92 -0
  21. data/lib/mundi_api/http/http_context.rb +18 -0
  22. data/lib/mundi_api/http/http_method_enum.rb +11 -0
  23. data/lib/mundi_api/http/http_request.rb +48 -0
  24. data/lib/mundi_api/http/http_response.rb +21 -0
  25. data/lib/mundi_api/models/base_model.rb +34 -0
  26. data/lib/mundi_api/models/create_access_token_request.rb +35 -0
  27. data/lib/mundi_api/models/create_address_request.rb +108 -0
  28. data/lib/mundi_api/models/create_bank_transfer_payment_request.rb +44 -0
  29. data/lib/mundi_api/models/create_boleto_payment_request.rb +83 -0
  30. data/lib/mundi_api/models/create_cancel_charge_request.rb +35 -0
  31. data/lib/mundi_api/models/create_cancel_subscription_request.rb +35 -0
  32. data/lib/mundi_api/models/create_capture_charge_request.rb +45 -0
  33. data/lib/mundi_api/models/create_card_options_request.rb +36 -0
  34. data/lib/mundi_api/models/create_card_request.rb +136 -0
  35. data/lib/mundi_api/models/create_card_token_request.rb +80 -0
  36. data/lib/mundi_api/models/create_charge_request.rb +92 -0
  37. data/lib/mundi_api/models/create_checkout_boleto_payment_request.rb +54 -0
  38. data/lib/mundi_api/models/create_checkout_card_installment_option_request.rb +44 -0
  39. data/lib/mundi_api/models/create_checkout_card_payment_request.rb +51 -0
  40. data/lib/mundi_api/models/create_checkout_payment_request.rb +82 -0
  41. data/lib/mundi_api/models/create_credit_card_payment_request.rb +108 -0
  42. data/lib/mundi_api/models/create_customer_request.rb +108 -0
  43. data/lib/mundi_api/models/create_discount_request.rb +62 -0
  44. data/lib/mundi_api/models/create_order_item_request.rb +71 -0
  45. data/lib/mundi_api/models/create_order_request.rb +114 -0
  46. data/lib/mundi_api/models/create_payment_request.rb +121 -0
  47. data/lib/mundi_api/models/create_phone_request.rb +53 -0
  48. data/lib/mundi_api/models/create_phones_request.rb +46 -0
  49. data/lib/mundi_api/models/create_plan_item_request.rb +81 -0
  50. data/lib/mundi_api/models/create_plan_request.rb +199 -0
  51. data/lib/mundi_api/models/create_price_bracket_request.rb +62 -0
  52. data/lib/mundi_api/models/create_pricing_scheme_request.rb +69 -0
  53. data/lib/mundi_api/models/create_seller_request.rb +90 -0
  54. data/lib/mundi_api/models/create_setup_request.rb +55 -0
  55. data/lib/mundi_api/models/create_shipping_request.rb +81 -0
  56. data/lib/mundi_api/models/create_subscription_item_request.rb +106 -0
  57. data/lib/mundi_api/models/create_subscription_request.rb +269 -0
  58. data/lib/mundi_api/models/create_token_request.rb +44 -0
  59. data/lib/mundi_api/models/create_usage_request.rb +54 -0
  60. data/lib/mundi_api/models/create_voucher_payment_request.rb +72 -0
  61. data/lib/mundi_api/models/get_access_token_response.rb +73 -0
  62. data/lib/mundi_api/models/get_address_response.rb +163 -0
  63. data/lib/mundi_api/models/get_bank_transfer_transaction_response.rb +118 -0
  64. data/lib/mundi_api/models/get_billing_address_response.rb +98 -0
  65. data/lib/mundi_api/models/get_boleto_transaction_response.rb +137 -0
  66. data/lib/mundi_api/models/get_card_response.rb +164 -0
  67. data/lib/mundi_api/models/get_card_token_response.rb +89 -0
  68. data/lib/mundi_api/models/get_charge_response.rb +184 -0
  69. data/lib/mundi_api/models/get_checkout_payment_settings_response.rb +99 -0
  70. data/lib/mundi_api/models/get_credit_card_transaction_response.rb +163 -0
  71. data/lib/mundi_api/models/get_customer_response.rb +145 -0
  72. data/lib/mundi_api/models/get_discount_response.rb +100 -0
  73. data/lib/mundi_api/models/get_invoice_item_response.rb +73 -0
  74. data/lib/mundi_api/models/get_invoice_response.rb +210 -0
  75. data/lib/mundi_api/models/get_order_item_response.rb +63 -0
  76. data/lib/mundi_api/models/get_order_response.rb +167 -0
  77. data/lib/mundi_api/models/get_period_response.rb +73 -0
  78. data/lib/mundi_api/models/get_phone_response.rb +53 -0
  79. data/lib/mundi_api/models/get_phones_response.rb +46 -0
  80. data/lib/mundi_api/models/get_plan_item_response.rb +127 -0
  81. data/lib/mundi_api/models/get_plan_response.rb +223 -0
  82. data/lib/mundi_api/models/get_price_bracket_response.rb +62 -0
  83. data/lib/mundi_api/models/get_pricing_scheme_response.rb +69 -0
  84. data/lib/mundi_api/models/get_safety_pay_transaction_response.rb +109 -0
  85. data/lib/mundi_api/models/get_seller_response.rb +126 -0
  86. data/lib/mundi_api/models/get_setup_response.rb +62 -0
  87. data/lib/mundi_api/models/get_shipping_response.rb +72 -0
  88. data/lib/mundi_api/models/get_subscription_item_response.rb +135 -0
  89. data/lib/mundi_api/models/get_subscription_response.rb +261 -0
  90. data/lib/mundi_api/models/get_token_response.rb +72 -0
  91. data/lib/mundi_api/models/get_transaction_response.rb +136 -0
  92. data/lib/mundi_api/models/get_usage_response.rb +82 -0
  93. data/lib/mundi_api/models/get_voucher_transaction_response.rb +163 -0
  94. data/lib/mundi_api/models/list_access_tokens_response.rb +51 -0
  95. data/lib/mundi_api/models/list_addresses_response.rb +51 -0
  96. data/lib/mundi_api/models/list_cards_response.rb +51 -0
  97. data/lib/mundi_api/models/list_charges_response.rb +51 -0
  98. data/lib/mundi_api/models/list_customers_response.rb +51 -0
  99. data/lib/mundi_api/models/list_invoices_response.rb +51 -0
  100. data/lib/mundi_api/models/list_order_response.rb +51 -0
  101. data/lib/mundi_api/models/list_plans_response.rb +51 -0
  102. data/lib/mundi_api/models/list_subscription_items_response.rb +51 -0
  103. data/lib/mundi_api/models/list_subscriptions_response.rb +51 -0
  104. data/lib/mundi_api/models/list_transactions_response.rb +51 -0
  105. data/lib/mundi_api/models/list_usages_response.rb +51 -0
  106. data/lib/mundi_api/models/paging_response.rb +53 -0
  107. data/lib/mundi_api/models/update_address_request.rb +53 -0
  108. data/lib/mundi_api/models/update_card_request.rb +81 -0
  109. data/lib/mundi_api/models/update_charge_card_request.rb +62 -0
  110. data/lib/mundi_api/models/update_charge_due_date_request.rb +36 -0
  111. data/lib/mundi_api/models/update_charge_payment_method_request.rb +74 -0
  112. data/lib/mundi_api/models/update_customer_request.rb +90 -0
  113. data/lib/mundi_api/models/update_metadata_request.rb +35 -0
  114. data/lib/mundi_api/models/update_plan_item_request.rb +81 -0
  115. data/lib/mundi_api/models/update_plan_request.rb +161 -0
  116. data/lib/mundi_api/models/update_price_bracket_request.rb +62 -0
  117. data/lib/mundi_api/models/update_pricing_scheme_request.rb +69 -0
  118. data/lib/mundi_api/models/update_subscription_billing_date_request.rb +37 -0
  119. data/lib/mundi_api/models/update_subscription_card_request.rb +44 -0
  120. data/lib/mundi_api/models/update_subscription_item_request.rb +81 -0
  121. data/lib/mundi_api/models/update_subscription_payment_method_request.rb +53 -0
  122. data/lib/mundi_api/mundi_api_client.rb +63 -0
  123. metadata +246 -0
data/lib/mundi_api.rb ADDED
@@ -0,0 +1,137 @@
1
+ # This file was automatically generated by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
3
+ require 'date'
4
+ require 'json'
5
+ require 'faraday'
6
+ require 'certifi'
7
+ require 'logging'
8
+
9
+ require_relative 'mundi_api/api_helper.rb'
10
+ require_relative 'mundi_api/mundi_api_client.rb'
11
+
12
+ # Http
13
+ require_relative 'mundi_api/http/http_call_back.rb'
14
+ require_relative 'mundi_api/http/http_client.rb'
15
+ require_relative 'mundi_api/http/http_method_enum.rb'
16
+ require_relative 'mundi_api/http/http_request.rb'
17
+ require_relative 'mundi_api/http/http_response.rb'
18
+ require_relative 'mundi_api/http/http_context.rb'
19
+ require_relative 'mundi_api/http/faraday_client.rb'
20
+ require_relative 'mundi_api/http/auth/basic_auth.rb'
21
+
22
+ # Models
23
+ require_relative 'mundi_api/models/base_model.rb'
24
+ require_relative 'mundi_api/models/create_subscription_request.rb'
25
+ require_relative 'mundi_api/models/get_boleto_transaction_response.rb'
26
+ require_relative 'mundi_api/models/get_order_response.rb'
27
+ require_relative 'mundi_api/models/update_address_request.rb'
28
+ require_relative 'mundi_api/models/create_cancel_charge_request.rb'
29
+ require_relative 'mundi_api/models/create_charge_request.rb'
30
+ require_relative 'mundi_api/models/get_usage_response.rb'
31
+ require_relative 'mundi_api/models/paging_response.rb'
32
+ require_relative 'mundi_api/models/update_card_request.rb'
33
+ require_relative 'mundi_api/models/update_customer_request.rb'
34
+ require_relative 'mundi_api/models/update_plan_item_request.rb'
35
+ require_relative 'mundi_api/models/update_subscription_item_request.rb'
36
+ require_relative 'mundi_api/models/list_customers_response.rb'
37
+ require_relative 'mundi_api/models/list_cards_response.rb'
38
+ require_relative 'mundi_api/models/list_addresses_response.rb'
39
+ require_relative 'mundi_api/models/list_plans_response.rb'
40
+ require_relative 'mundi_api/models/list_subscriptions_response.rb'
41
+ require_relative 'mundi_api/models/list_invoices_response.rb'
42
+ require_relative 'mundi_api/models/list_charges_response.rb'
43
+ require_relative 'mundi_api/models/list_transactions_response.rb'
44
+ require_relative 'mundi_api/models/create_cancel_subscription_request.rb'
45
+ require_relative 'mundi_api/models/update_charge_due_date_request.rb'
46
+ require_relative 'mundi_api/models/create_usage_request.rb'
47
+ require_relative 'mundi_api/models/list_order_response.rb'
48
+ require_relative 'mundi_api/models/create_plan_item_request.rb'
49
+ require_relative 'mundi_api/models/create_subscription_item_request.rb'
50
+ require_relative 'mundi_api/models/create_shipping_request.rb'
51
+ require_relative 'mundi_api/models/update_plan_request.rb'
52
+ require_relative 'mundi_api/models/update_subscription_card_request.rb'
53
+ require_relative 'mundi_api/models/get_transaction_response.rb'
54
+ require_relative 'mundi_api/models/get_billing_address_response.rb'
55
+ require_relative 'mundi_api/models/get_invoice_response.rb'
56
+ require_relative 'mundi_api/models/get_card_response.rb'
57
+ require_relative 'mundi_api/models/get_address_response.rb'
58
+ require_relative 'mundi_api/models/get_charge_response.rb'
59
+ require_relative 'mundi_api/models/get_subscription_item_response.rb'
60
+ require_relative 'mundi_api/models/get_pricing_scheme_response.rb'
61
+ require_relative 'mundi_api/models/get_discount_response.rb'
62
+ require_relative 'mundi_api/models/create_price_bracket_request.rb'
63
+ require_relative 'mundi_api/models/get_price_bracket_response.rb'
64
+ require_relative 'mundi_api/models/get_customer_response.rb'
65
+ require_relative 'mundi_api/models/create_discount_request.rb'
66
+ require_relative 'mundi_api/models/get_shipping_response.rb'
67
+ require_relative 'mundi_api/models/create_card_options_request.rb'
68
+ require_relative 'mundi_api/models/create_setup_request.rb'
69
+ require_relative 'mundi_api/models/get_setup_response.rb'
70
+ require_relative 'mundi_api/models/get_subscription_response.rb'
71
+ require_relative 'mundi_api/models/create_address_request.rb'
72
+ require_relative 'mundi_api/models/create_credit_card_payment_request.rb'
73
+ require_relative 'mundi_api/models/create_card_request.rb'
74
+ require_relative 'mundi_api/models/create_plan_request.rb'
75
+ require_relative 'mundi_api/models/create_pricing_scheme_request.rb'
76
+ require_relative 'mundi_api/models' /
77
+ '/update_subscription_payment_method_request.rb'
78
+ require_relative 'mundi_api/models/update_pricing_scheme_request.rb'
79
+ require_relative 'mundi_api/models/update_price_bracket_request.rb'
80
+ require_relative 'mundi_api/models/update_charge_card_request.rb'
81
+ require_relative 'mundi_api/models/update_charge_payment_method_request.rb'
82
+ require_relative 'mundi_api/models/list_usages_response.rb'
83
+ require_relative 'mundi_api/models/list_subscription_items_response.rb'
84
+ require_relative 'mundi_api/models/update_subscription_billing_date_request.rb'
85
+ require_relative 'mundi_api/models/get_invoice_item_response.rb'
86
+ require_relative 'mundi_api/models/get_period_response.rb'
87
+ require_relative 'mundi_api/models/get_plan_item_response.rb'
88
+ require_relative 'mundi_api/models/get_plan_response.rb'
89
+ require_relative 'mundi_api/models/create_boleto_payment_request.rb'
90
+ require_relative 'mundi_api/models/create_phone_request.rb'
91
+ require_relative 'mundi_api/models/create_phones_request.rb'
92
+ require_relative 'mundi_api/models/get_phone_response.rb'
93
+ require_relative 'mundi_api/models/get_phones_response.rb'
94
+ require_relative 'mundi_api/models/create_voucher_payment_request.rb'
95
+ require_relative 'mundi_api/models/get_credit_card_transaction_response.rb'
96
+ require_relative 'mundi_api/models/get_voucher_transaction_response.rb'
97
+ require_relative 'mundi_api/models/create_capture_charge_request.rb'
98
+ require_relative 'mundi_api/models/create_bank_transfer_payment_request.rb'
99
+ require_relative 'mundi_api/models/get_bank_transfer_transaction_response.rb'
100
+ require_relative 'mundi_api/models/get_safety_pay_transaction_response.rb'
101
+ require_relative 'mundi_api/models/get_access_token_response.rb'
102
+ require_relative 'mundi_api/models/create_access_token_request.rb'
103
+ require_relative 'mundi_api/models/list_access_tokens_response.rb'
104
+ require_relative 'mundi_api/models/create_customer_request.rb'
105
+ require_relative 'mundi_api/models/create_token_request.rb'
106
+ require_relative 'mundi_api/models/create_card_token_request.rb'
107
+ require_relative 'mundi_api/models/get_card_token_response.rb'
108
+ require_relative 'mundi_api/models/get_token_response.rb'
109
+ require_relative 'mundi_api/models/update_metadata_request.rb'
110
+ require_relative 'mundi_api/models/create_payment_request.rb'
111
+ require_relative 'mundi_api/models/create_order_request.rb'
112
+ require_relative 'mundi_api/models' /
113
+ '/create_checkout_card_installment_option_request.rb'
114
+ require_relative 'mundi_api/models/create_checkout_boleto_payment_request.rb'
115
+ require_relative 'mundi_api/models/create_checkout_card_payment_request.rb'
116
+ require_relative 'mundi_api/models/create_checkout_payment_request.rb'
117
+ require_relative 'mundi_api/models/get_checkout_payment_settings_response.rb'
118
+ require_relative 'mundi_api/models/create_seller_request.rb'
119
+ require_relative 'mundi_api/models/get_seller_response.rb'
120
+ require_relative 'mundi_api/models/create_order_item_request.rb'
121
+ require_relative 'mundi_api/models/get_order_item_response.rb'
122
+
123
+ # Exceptions
124
+ require_relative 'mundi_api/exceptions/api_exception.rb'
125
+ require_relative 'mundi_api/exceptions/error_exception.rb'
126
+
127
+ require_relative 'mundi_api/configuration.rb'
128
+
129
+ # Controllers
130
+ require_relative 'mundi_api/controllers/base_controller.rb'
131
+ require_relative 'mundi_api/controllers/charges_controller.rb'
132
+ require_relative 'mundi_api/controllers/customers_controller.rb'
133
+ require_relative 'mundi_api/controllers/invoices_controller.rb'
134
+ require_relative 'mundi_api/controllers/plans_controller.rb'
135
+ require_relative 'mundi_api/controllers/subscriptions_controller.rb'
136
+ require_relative 'mundi_api/controllers/orders_controller.rb'
137
+ require_relative 'mundi_api/controllers/tokens_controller.rb'
@@ -0,0 +1,209 @@
1
+ # This file was automatically generated by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
3
+
4
+ module MundiApi
5
+ # API utility class
6
+ class APIHelper
7
+ # Serializes an array parameter (creates key value pairs).
8
+ # @param [String] The name of the parameter.
9
+ # @param [Array] The value of the parameter.
10
+ # @param [String] The format of the serialization.
11
+ def self.serialize_array(key, array, formatting: 'indexed')
12
+ tuples = []
13
+
14
+ if formatting == 'unindexed'
15
+ tuples += array.map { |element| ["#{key}[]", element] }
16
+ elsif formatting == 'indexed'
17
+ tuples += array.map.with_index do |element, index|
18
+ ["#{key}[#{index}]", element]
19
+ end
20
+ elsif formatting == 'plain'
21
+ tuples += array.map { |element| [key, element] }
22
+ else
23
+ raise ArgumentError, 'Invalid format provided.'
24
+ end
25
+ tuples
26
+ end
27
+
28
+ # Replaces template parameters in the given url.
29
+ # @param [String] The query string builder to replace the template
30
+ # parameters.
31
+ # @param [Hash] The parameters to replace in the url.
32
+ def self.append_url_with_template_parameters(query_builder, parameters)
33
+ # perform parameter validation
34
+ unless query_builder.instance_of? String
35
+ raise ArgumentError, 'Given value for parameter \"query_builder\" is
36
+ invalid.'
37
+ end
38
+
39
+ # Return if there are no parameters to replace.
40
+ return query_builder if parameters.nil?
41
+
42
+ # Iterate and append parameters.
43
+ parameters.each do |key, value|
44
+ replace_value = ''
45
+
46
+ if value.nil?
47
+ replace_value = ''
48
+ elsif value.instance_of? Array
49
+ value.map! { |element| CGI.escape(element.to_s) }
50
+ replace_value = value.join('/')
51
+ else
52
+ replace_value = CGI.escape(value.to_s)
53
+ end
54
+
55
+ # Find the template parameter and replace it with its value.
56
+ query_builder = query_builder.gsub('{' + key.to_s + '}', replace_value)
57
+ end
58
+ query_builder
59
+ end
60
+
61
+ # Appends the given set of parameters to the given query string.
62
+ # @param [String] The query string builder to add the query parameters to.
63
+ # @param [Hash] The parameters to append.
64
+ # @param [String] The format of array parameter serialization.
65
+ def self.append_url_with_query_parameters(query_builder, parameters,
66
+ array_serialization: 'indexed')
67
+ # Perform parameter validation.
68
+ unless query_builder.instance_of? String
69
+ raise ArgumentError, 'Given value for parameter \"query_builder\"
70
+ is invalid.'
71
+ end
72
+
73
+ # Return if there are no parameters to replace.
74
+ return query_builder if parameters.nil?
75
+
76
+ parameters.each do |key, value|
77
+ seperator = query_builder.include?('?') ? '&' : '?'
78
+ unless value.nil?
79
+ if value.instance_of? Array
80
+ value.compact!
81
+ query_builder += if array_serialization == 'csv'
82
+ "#{seperator}#{key}=#{value.map do |element|
83
+ CGI.escape(element.to_s)
84
+ end.join(',')}"
85
+ elsif array_serialization == 'psv'
86
+ "#{seperator}#{key}=#{value.map do |element|
87
+ CGI.escape(element.to_s)
88
+ end.join('|')}"
89
+ elsif array_serialization == 'tsv'
90
+ "#{seperator}#{key}=#{value.map do |element|
91
+ CGI.escape(element.to_s)
92
+ end.join('\t')}"
93
+ else
94
+ "#{seperator}#{APIHelper.serialize_array(
95
+ key, value, formatting: array_serialization
96
+ ).map { |k, v| "#{k}=#{CGI.escape(v.to_s)}" }
97
+ .join('&')}"
98
+ end
99
+ else
100
+ query_builder += "#{seperator}#{key}=#{CGI.escape(value.to_s)}"
101
+ end
102
+ end
103
+ end
104
+ query_builder
105
+ end
106
+
107
+ # Validates and processes the given Url.
108
+ # @param [String] The given Url to process.
109
+ # @return [String] Pre-processed Url as string.
110
+ def self.clean_url(url)
111
+ # Perform parameter validation.
112
+ raise ArgumentError, 'Invalid Url.' unless url.instance_of? String
113
+
114
+ # Ensure that the urls are absolute.
115
+ matches = url.match(%r{^(https?:\/\/[^\/]+)})
116
+ raise ArgumentError, 'Invalid Url format.' if matches.nil?
117
+
118
+ # Get the http protocol match.
119
+ protocol = matches[1]
120
+
121
+ # Check if parameters exist.
122
+ index = url.index('?')
123
+
124
+ # Remove redundant forward slashes.
125
+ query = url[protocol.length...(!index.nil? ? index : url.length)]
126
+ query.gsub!(%r{\/\/+}, '/')
127
+
128
+ # Get the parameters.
129
+ parameters = !index.nil? ? url[url.index('?')...url.length] : ''
130
+
131
+ # Return processed url.
132
+ protocol + query + parameters
133
+ end
134
+
135
+ # Parses JSON string.
136
+ # @param [String] A JSON string.
137
+ def self.json_deserialize(json)
138
+ return JSON.parse(json)
139
+ rescue StandardError
140
+ raise TypeError, 'Server responded with invalid JSON.'
141
+ end
142
+
143
+ # Removes elements with empty values from a hash.
144
+ # @param [Hash] The hash to clean.
145
+ def self.clean_hash(hash)
146
+ hash.delete_if { |_key, value| value.to_s.strip.empty? }
147
+ end
148
+
149
+ # Form encodes a hash of parameters.
150
+ # @param [Hash] The hash of parameters to encode.
151
+ # @return [Hash] A hash with the same parameters form encoded.
152
+ def self.form_encode_parameters(form_parameters)
153
+ encoded = {}
154
+ form_parameters.each do |key, value|
155
+ encoded.merge!(APIHelper.form_encode(value, key))
156
+ end
157
+ encoded
158
+ end
159
+
160
+ # Form encodes an object.
161
+ # @param [Dynamic] An object to form encode.
162
+ # @param [String] The name of the object.
163
+ # @return [Hash] A form encoded representation of the object in the form
164
+ # of a hash.
165
+ def self.form_encode(obj, instance_name)
166
+ retval = {}
167
+
168
+ # If this is a structure, resolve it's field names.
169
+ obj = obj.to_hash if obj.is_a? BaseModel
170
+
171
+ # Create a form encoded hash for this object.
172
+ if obj.nil?
173
+ nil
174
+ elsif obj.instance_of? Array
175
+ obj.each_with_index do |value, index|
176
+ retval.merge!(APIHelper.form_encode(value, instance_name + '[' +
177
+ index.to_s + ']'))
178
+ end
179
+ elsif obj.instance_of? Hash
180
+ obj.each do |key, value|
181
+ retval.merge!(APIHelper.form_encode(value, instance_name + '[' +
182
+ key + ']'))
183
+ end
184
+ else
185
+ retval[instance_name] = obj
186
+ end
187
+ retval
188
+ end
189
+ end
190
+ end
191
+
192
+ # Extend types to support to_bool.
193
+ module ToBoolean
194
+ def to_bool
195
+ return true if self == true || to_s.strip =~ /^(true|yes|y|1)$/i
196
+ false
197
+ end
198
+ end
199
+
200
+ # Extend NilClass type to support to_bool.
201
+ class NilClass; include ToBoolean; end
202
+ # Extend TrueClass type to support to_bool.
203
+ class TrueClass; include ToBoolean; end
204
+ # Extend FalseClass type to support to_bool.
205
+ class FalseClass; include ToBoolean; end
206
+ # Extend Numeric type to support to_bool.
207
+ class Numeric; include ToBoolean; end
208
+ # Extend String type to support to_bool.
209
+ class String; include ToBoolean; end
@@ -0,0 +1,25 @@
1
+ # This file was automatically generated by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
3
+
4
+ module MundiApi
5
+ # All configuration including auth info and base URI for the API access
6
+ # are configured in this class.
7
+ class Configuration
8
+ # The base Uri for API calls
9
+ @base_uri = 'https://api.mundipagg.com/core/v1'
10
+
11
+ # The username to use with basic authentication
12
+ @basic_auth_user_name = 'TODO: Replace'
13
+
14
+ # The password to use with basic authentication
15
+ @basic_auth_password = 'TODO: Replace'
16
+
17
+ # The attribute accessors for public properties.
18
+ class << self
19
+ attr_accessor :array_serialization
20
+ attr_accessor :base_uri
21
+ attr_accessor :basic_auth_user_name
22
+ attr_accessor :basic_auth_password
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,61 @@
1
+ # This file was automatically generated by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
3
+
4
+ module MundiApi
5
+ # Base controller.
6
+ class BaseController
7
+ attr_accessor :http_client, :http_call_back
8
+
9
+ def initialize(http_client: nil, http_call_back: nil)
10
+ @http_client = http_client || FaradayClient.new
11
+ @http_call_back = http_call_back
12
+
13
+ @global_headers = {
14
+ 'user-agent' => 'MundiSDK'
15
+ }
16
+ end
17
+
18
+ def validate_parameters(args)
19
+ args.each do |_name, value|
20
+ if value.nil?
21
+ raise ArgumentError, "Required parameter #{_name} cannot be nil."
22
+ end
23
+ end
24
+ end
25
+
26
+ def execute_request(request, binary: false)
27
+ @http_call_back.on_before_request(request) if @http_call_back
28
+
29
+ APIHelper.clean_hash(request.headers)
30
+ request.headers = @global_headers.clone.merge(request.headers)
31
+
32
+ response = if binary
33
+ @http_client.execute_as_binary(request)
34
+ else
35
+ @http_client.execute_as_string(request)
36
+ end
37
+ context = HttpContext.new(request, response)
38
+
39
+ @http_call_back.on_after_response(context) if @http_call_back
40
+
41
+ context
42
+ end
43
+
44
+ def validate_response(context)
45
+ raise ErrorException.new 'Invalid request', context if
46
+ context.response.status_code == 400
47
+ raise ErrorException.new 'Invalid API key', context if
48
+ context.response.status_code == 401
49
+ raise ErrorException.new 'An informed resource was not found', context if
50
+ context.response.status_code == 404
51
+ raise ErrorException.new 'Business validation error', context if
52
+ context.response.status_code == 412
53
+ raise ErrorException.new 'Contract validation error', context if
54
+ context.response.status_code == 422
55
+ raise ErrorException.new 'Internal server error', context if
56
+ context.response.status_code == 500
57
+ raise APIException.new 'HTTP Response Not OK', context unless
58
+ context.response.status_code.between?(200, 208) # [200,208] = HTTP OK
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,359 @@
1
+ # This file was automatically generated by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
3
+
4
+ module MundiApi
5
+ # ChargesController
6
+ class ChargesController < BaseController
7
+ @instance = ChargesController.new
8
+
9
+ class << self
10
+ attr_accessor :instance
11
+ end
12
+
13
+ def instance
14
+ self.class.instance
15
+ end
16
+
17
+ # Get a charge from its id
18
+ # @param [String] charge_id Required parameter: Charge id
19
+ # @return GetChargeResponse response from the API call
20
+ def get_charge(charge_id)
21
+ # Prepare query url.
22
+ _query_builder = Configuration.base_uri.dup
23
+ _query_builder << '/charges/{charge_id}'
24
+ _query_builder = APIHelper.append_url_with_template_parameters(
25
+ _query_builder,
26
+ 'charge_id' => charge_id
27
+ )
28
+ _query_url = APIHelper.clean_url _query_builder
29
+
30
+ # Prepare headers.
31
+ _headers = {
32
+ 'accept' => 'application/json'
33
+ }
34
+
35
+ # Prepare and execute HttpRequest.
36
+ _request = @http_client.get(
37
+ _query_url,
38
+ headers: _headers
39
+ )
40
+ BasicAuth.apply(_request)
41
+ _context = execute_request(_request)
42
+ validate_response(_context)
43
+
44
+ # Return appropriate response type.
45
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
46
+ GetChargeResponse.from_hash(decoded)
47
+ end
48
+
49
+ # Retries a charge
50
+ # @param [String] charge_id Required parameter: Charge id
51
+ # @return GetChargeResponse response from the API call
52
+ def retry_charge(charge_id)
53
+ # Prepare query url.
54
+ _query_builder = Configuration.base_uri.dup
55
+ _query_builder << '/charges/{charge_id}/retry'
56
+ _query_builder = APIHelper.append_url_with_template_parameters(
57
+ _query_builder,
58
+ 'charge_id' => charge_id
59
+ )
60
+ _query_url = APIHelper.clean_url _query_builder
61
+
62
+ # Prepare headers.
63
+ _headers = {
64
+ 'accept' => 'application/json'
65
+ }
66
+
67
+ # Prepare and execute HttpRequest.
68
+ _request = @http_client.post(
69
+ _query_url,
70
+ headers: _headers
71
+ )
72
+ BasicAuth.apply(_request)
73
+ _context = execute_request(_request)
74
+ validate_response(_context)
75
+
76
+ # Return appropriate response type.
77
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
78
+ GetChargeResponse.from_hash(decoded)
79
+ end
80
+
81
+ # Creates a new charge
82
+ # @param [CreateChargeRequest] request Required parameter: Request for
83
+ # creating a charge
84
+ # @return GetChargeResponse response from the API call
85
+ def create_charge(request)
86
+ # Prepare query url.
87
+ _query_builder = Configuration.base_uri.dup
88
+ _query_builder << '/Charges'
89
+ _query_url = APIHelper.clean_url _query_builder
90
+
91
+ # Prepare headers.
92
+ _headers = {
93
+ 'accept' => 'application/json',
94
+ 'content-type' => 'application/json; charset=utf-8'
95
+ }
96
+
97
+ # Prepare and execute HttpRequest.
98
+ _request = @http_client.post(
99
+ _query_url,
100
+ headers: _headers,
101
+ parameters: request.to_json
102
+ )
103
+ BasicAuth.apply(_request)
104
+ _context = execute_request(_request)
105
+ validate_response(_context)
106
+
107
+ # Return appropriate response type.
108
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
109
+ GetChargeResponse.from_hash(decoded)
110
+ end
111
+
112
+ # Updates the card from a charge
113
+ # @param [String] charge_id Required parameter: Charge id
114
+ # @param [UpdateChargeCardRequest] request Required parameter: Request for
115
+ # updating a charge's card
116
+ # @return GetChargeResponse response from the API call
117
+ def update_charge_card(charge_id,
118
+ request)
119
+ # Prepare query url.
120
+ _query_builder = Configuration.base_uri.dup
121
+ _query_builder << '/charges/{charge_id}/card'
122
+ _query_builder = APIHelper.append_url_with_template_parameters(
123
+ _query_builder,
124
+ 'charge_id' => charge_id
125
+ )
126
+ _query_url = APIHelper.clean_url _query_builder
127
+
128
+ # Prepare headers.
129
+ _headers = {
130
+ 'accept' => 'application/json',
131
+ 'content-type' => 'application/json; charset=utf-8'
132
+ }
133
+
134
+ # Prepare and execute HttpRequest.
135
+ _request = @http_client.patch(
136
+ _query_url,
137
+ headers: _headers,
138
+ parameters: request.to_json
139
+ )
140
+ BasicAuth.apply(_request)
141
+ _context = execute_request(_request)
142
+ validate_response(_context)
143
+
144
+ # Return appropriate response type.
145
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
146
+ GetChargeResponse.from_hash(decoded)
147
+ end
148
+
149
+ # Updates a charge's payment method
150
+ # @param [String] charge_id Required parameter: Charge id
151
+ # @param [UpdateChargePaymentMethodRequest] request Required parameter:
152
+ # Request for updating the payment method from a charge
153
+ # @return GetChargeResponse response from the API call
154
+ def update_charge_payment_method(charge_id,
155
+ request)
156
+ # Prepare query url.
157
+ _query_builder = Configuration.base_uri.dup
158
+ _query_builder << '/charges/{charge_id}/payment-method'
159
+ _query_builder = APIHelper.append_url_with_template_parameters(
160
+ _query_builder,
161
+ 'charge_id' => charge_id
162
+ )
163
+ _query_url = APIHelper.clean_url _query_builder
164
+
165
+ # Prepare headers.
166
+ _headers = {
167
+ 'accept' => 'application/json',
168
+ 'content-type' => 'application/json; charset=utf-8'
169
+ }
170
+
171
+ # Prepare and execute HttpRequest.
172
+ _request = @http_client.patch(
173
+ _query_url,
174
+ headers: _headers,
175
+ parameters: request.to_json
176
+ )
177
+ BasicAuth.apply(_request)
178
+ _context = execute_request(_request)
179
+ validate_response(_context)
180
+
181
+ # Return appropriate response type.
182
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
183
+ GetChargeResponse.from_hash(decoded)
184
+ end
185
+
186
+ # Cancel a charge
187
+ # @param [String] charge_id Required parameter: Charge id
188
+ # @param [CreateCancelChargeRequest] request Optional parameter: Request for
189
+ # cancelling a charge
190
+ # @return GetChargeResponse response from the API call
191
+ def cancel_charge(charge_id,
192
+ request = nil)
193
+ # Prepare query url.
194
+ _query_builder = Configuration.base_uri.dup
195
+ _query_builder << '/charges/{charge_id}'
196
+ _query_builder = APIHelper.append_url_with_template_parameters(
197
+ _query_builder,
198
+ 'charge_id' => charge_id
199
+ )
200
+ _query_url = APIHelper.clean_url _query_builder
201
+
202
+ # Prepare headers.
203
+ _headers = {
204
+ 'accept' => 'application/json',
205
+ 'content-type' => 'application/json; charset=utf-8'
206
+ }
207
+
208
+ # Prepare and execute HttpRequest.
209
+ _request = @http_client.delete(
210
+ _query_url,
211
+ headers: _headers,
212
+ parameters: request.to_json
213
+ )
214
+ BasicAuth.apply(_request)
215
+ _context = execute_request(_request)
216
+ validate_response(_context)
217
+
218
+ # Return appropriate response type.
219
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
220
+ GetChargeResponse.from_hash(decoded)
221
+ end
222
+
223
+ # Captures a charge
224
+ # @param [String] charge_id Required parameter: Charge id
225
+ # @param [CreateCaptureChargeRequest] request Optional parameter: Request
226
+ # for capturing a charge
227
+ # @return GetChargeResponse response from the API call
228
+ def capture_charge(charge_id,
229
+ request = nil)
230
+ # Prepare query url.
231
+ _query_builder = Configuration.base_uri.dup
232
+ _query_builder << '/charges/{charge_id}/capture'
233
+ _query_builder = APIHelper.append_url_with_template_parameters(
234
+ _query_builder,
235
+ 'charge_id' => charge_id
236
+ )
237
+ _query_url = APIHelper.clean_url _query_builder
238
+
239
+ # Prepare headers.
240
+ _headers = {
241
+ 'accept' => 'application/json',
242
+ 'content-type' => 'application/json; charset=utf-8'
243
+ }
244
+
245
+ # Prepare and execute HttpRequest.
246
+ _request = @http_client.post(
247
+ _query_url,
248
+ headers: _headers,
249
+ parameters: request.to_json
250
+ )
251
+ BasicAuth.apply(_request)
252
+ _context = execute_request(_request)
253
+ validate_response(_context)
254
+
255
+ # Return appropriate response type.
256
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
257
+ GetChargeResponse.from_hash(decoded)
258
+ end
259
+
260
+ # Updates the metadata from a charge
261
+ # @param [String] charge_id Required parameter: The charge id
262
+ # @param [UpdateMetadataRequest] request Required parameter: Request for
263
+ # updating the charge metadata
264
+ # @return GetChargeResponse response from the API call
265
+ def update_charge_metadata(charge_id,
266
+ request)
267
+ # Prepare query url.
268
+ _query_builder = Configuration.base_uri.dup
269
+ _query_builder << '/Charges/{charge_id}/metadata'
270
+ _query_builder = APIHelper.append_url_with_template_parameters(
271
+ _query_builder,
272
+ 'charge_id' => charge_id
273
+ )
274
+ _query_url = APIHelper.clean_url _query_builder
275
+
276
+ # Prepare headers.
277
+ _headers = {
278
+ 'accept' => 'application/json',
279
+ 'content-type' => 'application/json; charset=utf-8'
280
+ }
281
+
282
+ # Prepare and execute HttpRequest.
283
+ _request = @http_client.patch(
284
+ _query_url,
285
+ headers: _headers,
286
+ parameters: request.to_json
287
+ )
288
+ BasicAuth.apply(_request)
289
+ _context = execute_request(_request)
290
+ validate_response(_context)
291
+
292
+ # Return appropriate response type.
293
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
294
+ GetChargeResponse.from_hash(decoded)
295
+ end
296
+
297
+ # Lists all charges
298
+ # @param [Integer] page Optional parameter: Page number
299
+ # @param [Integer] size Optional parameter: Page size
300
+ # @param [String] code Optional parameter: Filter for charge's code
301
+ # @param [String] status Optional parameter: Filter for charge's status
302
+ # @param [String] payment_method Optional parameter: Filter for charge's
303
+ # payment method
304
+ # @param [String] customer_id Optional parameter: Filter for charge's
305
+ # customer id
306
+ # @param [String] order_id Optional parameter: Filter for charge's order
307
+ # id
308
+ # @param [DateTime] created_since Optional parameter: Filter for the
309
+ # beginning of the range for charge's creation
310
+ # @param [DateTime] created_until Optional parameter: Filter for the end of
311
+ # the range for charge's creation
312
+ # @return ListChargesResponse response from the API call
313
+ def get_charges(page = nil,
314
+ size = nil,
315
+ code = nil,
316
+ status = nil,
317
+ payment_method = nil,
318
+ customer_id = nil,
319
+ order_id = nil,
320
+ created_since = nil,
321
+ created_until = nil)
322
+ # Prepare query url.
323
+ _query_builder = Configuration.base_uri.dup
324
+ _query_builder << '/charges'
325
+ _query_builder = APIHelper.append_url_with_query_parameters(
326
+ _query_builder,
327
+ 'page' => page,
328
+ 'size' => size,
329
+ 'code' => code,
330
+ 'status' => status,
331
+ 'payment_method' => payment_method,
332
+ 'customer_id' => customer_id,
333
+ 'order_id' => order_id,
334
+ 'created_since' => created_since,
335
+ 'created_until' => created_until,
336
+ array_serialization: Configuration.array_serialization
337
+ )
338
+ _query_url = APIHelper.clean_url _query_builder
339
+
340
+ # Prepare headers.
341
+ _headers = {
342
+ 'accept' => 'application/json'
343
+ }
344
+
345
+ # Prepare and execute HttpRequest.
346
+ _request = @http_client.get(
347
+ _query_url,
348
+ headers: _headers
349
+ )
350
+ BasicAuth.apply(_request)
351
+ _context = execute_request(_request)
352
+ validate_response(_context)
353
+
354
+ # Return appropriate response type.
355
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
356
+ ListChargesResponse.from_hash(decoded)
357
+ end
358
+ end
359
+ end