transbank-sdk 1.0.2 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/reporte-de-error.md +40 -0
  3. data/.gitignore +3 -1
  4. data/.travis.yml +3 -1
  5. data/CHANGELOG.md +36 -0
  6. data/Dockerfile +1 -2
  7. data/Makefile +3 -3
  8. data/README.md +5 -8
  9. data/docker-compose.yml +1 -1
  10. data/lib/transbank/sdk.rb +9 -5
  11. data/lib/transbank/sdk/oneclick/base.rb +64 -0
  12. data/lib/transbank/sdk/oneclick/errors/oneclick_error.rb +16 -0
  13. data/lib/transbank/sdk/oneclick/inscription/errors/mall_inscription_delete_error.rb +16 -0
  14. data/lib/transbank/sdk/oneclick/inscription/errors/mall_inscription_finish_error.rb +16 -0
  15. data/lib/transbank/sdk/oneclick/inscription/errors/mall_inscription_start_error.rb +16 -0
  16. data/lib/transbank/sdk/oneclick/inscription/errors/oneclick_mall_inscription_errors.rb +3 -0
  17. data/lib/transbank/sdk/oneclick/inscription/inscription.rb +3 -0
  18. data/lib/transbank/sdk/oneclick/inscription/responses/mall_inscription_delete_response.rb +18 -0
  19. data/lib/transbank/sdk/oneclick/inscription/responses/mall_inscription_finish_response.rb +15 -0
  20. data/lib/transbank/sdk/oneclick/inscription/responses/mall_inscription_start_response.rb +14 -0
  21. data/lib/transbank/sdk/oneclick/inscription/responses/oneclick_mall_inscription_responses.rb +3 -0
  22. data/lib/transbank/sdk/oneclick/mall/errors/mall_transaction_authorize_error.rb +16 -0
  23. data/lib/transbank/sdk/oneclick/mall/errors/mall_transaction_refund_error.rb +16 -0
  24. data/lib/transbank/sdk/oneclick/mall/errors/mall_transaction_status_error.rb +16 -0
  25. data/lib/transbank/sdk/oneclick/mall/errors/oneclick_mall_errors.rb +4 -0
  26. data/lib/transbank/sdk/oneclick/mall/mall_inscription.rb +73 -0
  27. data/lib/transbank/sdk/oneclick/mall/mall_transaction.rb +97 -0
  28. data/lib/transbank/sdk/oneclick/mall/oneclick_mall.rb +4 -0
  29. data/lib/transbank/sdk/oneclick/mall/responses/mall_transaction_authorize_response.rb +16 -0
  30. data/lib/transbank/sdk/oneclick/mall/responses/mall_transaction_refund_response.rb +16 -0
  31. data/lib/transbank/sdk/oneclick/mall/responses/mall_transaction_status_response.rb +15 -0
  32. data/lib/transbank/sdk/oneclick/mall/responses/oneclick_mall_responses.rb +4 -0
  33. data/lib/transbank/sdk/oneclick/mall_deferred/errors/mall_deferred_transaction_capture_error.rb +16 -0
  34. data/lib/transbank/sdk/oneclick/mall_deferred/mall_deferred_inscription.rb +20 -0
  35. data/lib/transbank/sdk/oneclick/mall_deferred/mall_deferred_transaction.rb +42 -0
  36. data/lib/transbank/sdk/oneclick/mall_deferred/responses/mall_deferred_transaction_capture_response.rb +16 -0
  37. data/lib/transbank/sdk/oneclick/oneclick.rb +12 -0
  38. data/lib/transbank/sdk/onepay/base.rb +10 -0
  39. data/lib/transbank/sdk/onepay/models/item.rb +1 -1
  40. data/lib/transbank/sdk/onepay/models/refund.rb +4 -5
  41. data/lib/transbank/sdk/onepay/models/shopping_cart.rb +1 -1
  42. data/lib/transbank/sdk/onepay/models/transaction.rb +11 -9
  43. data/lib/transbank/sdk/onepay/requests/request.rb +1 -1
  44. data/lib/transbank/sdk/onepay/requests/transaction_create_request.rb +6 -1
  45. data/lib/transbank/sdk/onepay/responses/response.rb +1 -1
  46. data/lib/transbank/sdk/patpass/errors/integration_type_error.rb +8 -0
  47. data/lib/transbank/sdk/patpass/errors/patpass_error.rb +15 -0
  48. data/lib/transbank/sdk/patpass/patpass_by_webpay/base.rb +47 -0
  49. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/patpass_by_webpay_errors.rb +12 -0
  50. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_commit_error.rb +15 -0
  51. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_create_error.rb +15 -0
  52. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_status_error.rb +15 -0
  53. data/lib/transbank/sdk/patpass/patpass_by_webpay/options.rb +9 -0
  54. data/lib/transbank/sdk/patpass/patpass_by_webpay/patpass_by_webpay.rb +16 -0
  55. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/patpass_by_webpay_responses.rb +3 -0
  56. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_commit_response.rb +20 -0
  57. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_create_response.rb +15 -0
  58. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_status_response.rb +21 -0
  59. data/lib/transbank/sdk/patpass/patpass_by_webpay/transaction.rb +93 -0
  60. data/lib/transbank/sdk/patpass/patpass_comercio/base.rb +47 -0
  61. data/lib/transbank/sdk/patpass/patpass_comercio/errors/inscription_start_error.rb +15 -0
  62. data/lib/transbank/sdk/patpass/patpass_comercio/errors/inscription_status_error.rb +15 -0
  63. data/lib/transbank/sdk/patpass/patpass_comercio/errors/patpass_comercio_errors.rb +2 -0
  64. data/lib/transbank/sdk/patpass/patpass_comercio/inscription.rb +79 -0
  65. data/lib/transbank/sdk/patpass/patpass_comercio/options.rb +9 -0
  66. data/lib/transbank/sdk/patpass/patpass_comercio/patpass_comercio.rb +5 -0
  67. data/lib/transbank/sdk/patpass/patpass_comercio/responses/inscription_start_response.rb +13 -0
  68. data/lib/transbank/sdk/patpass/patpass_comercio/responses/inscription_status_response.rb +13 -0
  69. data/lib/transbank/sdk/patpass/patpass_comercio/responses/patpass_comercio_responses.rb +2 -0
  70. data/lib/transbank/sdk/transaccion_completa/base.rb +49 -0
  71. data/lib/transbank/sdk/transaccion_completa/errors/transaccion_completa_error.rb +16 -0
  72. data/lib/transbank/sdk/transaccion_completa/errors/transaccion_completa_errors.rb +6 -0
  73. data/lib/transbank/sdk/transaccion_completa/errors/transaction_commit_error.rb +14 -0
  74. data/lib/transbank/sdk/transaccion_completa/errors/transaction_create_error.rb +14 -0
  75. data/lib/transbank/sdk/transaccion_completa/errors/transaction_installments_error.rb +14 -0
  76. data/lib/transbank/sdk/transaccion_completa/errors/transaction_refund_error.rb +14 -0
  77. data/lib/transbank/sdk/transaccion_completa/errors/transaction_status_error.rb +14 -0
  78. data/lib/transbank/sdk/transaccion_completa/mall/mall_transaction.rb +164 -0
  79. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_commit_response.rb +14 -0
  80. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_installments_response.rb +11 -0
  81. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_responses.rb +3 -0
  82. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_status_response.rb +14 -0
  83. data/lib/transbank/sdk/transaccion_completa/options.rb +7 -0
  84. data/lib/transbank/sdk/transaccion_completa/responses/transaccion_completa_responses.rb +5 -0
  85. data/lib/transbank/sdk/transaccion_completa/responses/transaction_commit_response.rb +16 -0
  86. data/lib/transbank/sdk/transaccion_completa/responses/transaction_create_response.rb +10 -0
  87. data/lib/transbank/sdk/transaccion_completa/responses/transaction_installments_response.rb +13 -0
  88. data/lib/transbank/sdk/transaccion_completa/responses/transaction_refund_response.rb +14 -0
  89. data/lib/transbank/sdk/transaccion_completa/responses/transaction_status_response.rb +16 -0
  90. data/lib/transbank/sdk/transaccion_completa/transaccion_completa.rb +5 -0
  91. data/lib/transbank/sdk/transaccion_completa/transaction.rb +117 -0
  92. data/lib/transbank/sdk/transbank_error.rb +6 -0
  93. data/lib/transbank/sdk/utils/json_utils.rb +75 -0
  94. data/lib/transbank/sdk/utils/net_helper.rb +82 -0
  95. data/lib/transbank/sdk/{onepay/utils → utils}/request_builder.rb +18 -10
  96. data/lib/transbank/sdk/{onepay/utils → utils}/signature_utils.rb +0 -0
  97. data/lib/transbank/sdk/utils/utils.rb +9 -0
  98. data/lib/transbank/sdk/version.rb +1 -1
  99. data/lib/transbank/sdk/webpay/errors/integration_type_error.rb +8 -0
  100. data/lib/transbank/sdk/webpay/errors/webpay_error.rb +14 -0
  101. data/lib/transbank/sdk/webpay/webpay_plus/base.rb +74 -0
  102. data/lib/transbank/sdk/webpay/webpay_plus/deferred/deferred_transaction.rb +108 -0
  103. data/lib/transbank/sdk/webpay/webpay_plus/deferred/errors/transaction_capture_error.rb +16 -0
  104. data/lib/transbank/sdk/webpay/webpay_plus/deferred/errors/webpay_plus_deferred_errors.rb +1 -0
  105. data/lib/transbank/sdk/webpay/webpay_plus/deferred/responses/transaction_capture_response.rb +22 -0
  106. data/lib/transbank/sdk/webpay/webpay_plus/deferred/responses/webpay_plus_deferred_responses.rb +1 -0
  107. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_commit_error.rb +17 -0
  108. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_create_error.rb +16 -0
  109. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_refund_error.rb +16 -0
  110. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_status_error.rb +16 -0
  111. data/lib/transbank/sdk/webpay/webpay_plus/errors/webpay_plus_errors.rb +13 -0
  112. data/lib/transbank/sdk/webpay/webpay_plus/mall/mall_transaction.rb +88 -0
  113. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/mall_transaction_commit_response.rb +23 -0
  114. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/mall_transaction_status_response.rb +21 -0
  115. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/webpay_plus_mall_responses.rb +2 -0
  116. data/lib/transbank/sdk/webpay/webpay_plus/mall_deferred/mall_deferred_transaction.rb +109 -0
  117. data/lib/transbank/sdk/webpay/webpay_plus/options.rb +9 -0
  118. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_commit_response.rb +20 -0
  119. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_create_response.rb +15 -0
  120. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_refund_response.rb +19 -0
  121. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_status_response.rb +21 -0
  122. data/lib/transbank/sdk/webpay/webpay_plus/responses/webpay_plus_responses.rb +4 -0
  123. data/lib/transbank/sdk/webpay/webpay_plus/transaction.rb +89 -0
  124. data/lib/transbank/sdk/webpay/webpay_plus/webpay_plus.rb +24 -0
  125. data/transbank-sdk.gemspec +1 -1
  126. metadata +112 -11
  127. data/lib/transbank/sdk/onepay/utils/json_utils.rb +0 -73
  128. data/lib/transbank/sdk/onepay/utils/net_helper.rb +0 -38
  129. data/lib/transbank/sdk/onepay/utils/utils.rb +0 -9
@@ -1,73 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Utils
4
- module JSONUtils
5
- def self.included(mod)
6
- # Implement #to_h if the class that includes this module doesn't have it
7
- # implemented. Used in several model classes to make them easier to
8
- # transform to hashes so they can be transformed to JSON afterwards
9
- unless mod.respond_to? :to_h
10
- mod.send(:define_method, :to_h) do
11
- JSON.parse(self.jsonify)
12
- end
13
- end
14
- end
15
- # Get all instance variables of an instance of a class,
16
- # then for all of these variables,
17
- # if the instance of the class' respond_to? returns true,
18
- # #send the variable name (so, you'll get the value of the instance variable's
19
- # getter), then save that to a Hash where [key] is the instance variable's name
20
- # and [value] is its value
21
- #
22
- # Finally, generate a JSON string from this hash
23
- # @return [String] a JSON string created from the Hash resulting from the
24
- # above operation
25
- def jsonify
26
- instance_vars = instance_variables.map! { |var| var.to_s.gsub!(/^@/, '') }
27
- instance_as_hash =
28
- instance_vars.reduce({}) do |resulting_hash, instance_variable|
29
- if respond_to? instance_variable
30
- value = send(instance_variable)
31
- # Safe navigation operator is Ruby 2.3+
32
- value = value.to_h if value && value.respond_to?(:to_h) unless value.is_a? Array
33
- value = value.to_a if value && value.respond_to?(:to_a) unless value.is_a? Hash
34
- if value.is_a? Array
35
- value = value.map {|x| x.respond_to?(:jsonify) ? JSON.parse(x.jsonify) : x }
36
- end
37
-
38
- value = value.jsonify if value.respond_to? :jsonify
39
- resulting_hash[instance_variable] = value
40
- end
41
- resulting_hash
42
- end
43
- JSON.generate instance_as_hash
44
- end
45
-
46
- # Receive a Hash and return a new hash same as the one we received,
47
- # but all keys that were strings or camelCase'd are snake_case'd and
48
- # turned into symbols.
49
- # Example: {'camelCaseKey': "somevalue"}
50
- # Would return: {camel_case_key: "somevalue"}
51
- def transform_hash_keys(hash)
52
- hash.reduce({}) do |new_hsh, (key, val)|
53
- new_key = underscore(key).to_sym
54
- new_hsh[new_key] = val
55
- new_hsh
56
- end
57
- end
58
-
59
- # FROM https://stackoverflow.com/a/1509957
60
- # Transforms camelCaseWords to snake_case_words
61
- def underscore(camel_cased_word)
62
- camel_cased_word.to_s.gsub(/::/, '/')
63
- .gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
64
- .gsub(/([a-z\d])([A-Z])/,'\1_\2')
65
- .tr("-", "_")
66
- .downcase
67
- end
68
- end
69
- end
70
- end
71
- end
72
-
73
-
@@ -1,38 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Utils
4
- module NetHelper
5
- # POST a request to Transbank's servers, and return the parsed response
6
- # @param uri_string [String] an URI to post to
7
- # @param body [Hash] the body of your POST request
8
- # @return [Hash] the JSON.parse'd response body
9
- def http_post(uri_string, body)
10
- uri = URI.parse(uri_string)
11
- http = Net::HTTP.new(uri.host, uri.port)
12
- http.use_ssl = uri.scheme == 'https'
13
- request = Net::HTTP::Post.new(uri.path, 'Content-Type'=> 'application/json')
14
- camel_cased_body = keys_to_camel_case(body)
15
- request.body = JSON.generate(camel_cased_body)
16
- result = http.request(request)
17
- JSON.parse(result.body)
18
- end
19
-
20
- # Required for sending data to Transbank.
21
- def keys_to_camel_case(hash)
22
- hash.reduce({}) do |new_hash, (key, val)|
23
- if val.is_a? Array
24
- val = val.map {|value| value.is_a?(Hash) ? keys_to_camel_case(value) : value }
25
- end
26
- new_key = snake_to_camel_case(key.to_s)
27
- new_hash[new_key] = val
28
- new_hash
29
- end
30
- end
31
-
32
- def snake_to_camel_case(str)
33
- str.split('_').reduce { |string, current_word| string + current_word.capitalize }
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,9 +0,0 @@
1
- require 'transbank/sdk/onepay/utils/json_utils'
2
- require 'transbank/sdk/onepay/utils/net_helper'
3
- require 'transbank/sdk/onepay/utils/signature_utils'
4
- require 'transbank/sdk/onepay/utils/request_builder'
5
-
6
- module Transbank
7
- module Onepay
8
- end
9
- end