conekta-tiempometa 2.4.2

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 (89) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/.rspec +1 -0
  4. data/CHANGELOG.md +124 -0
  5. data/Dockerfile +44 -0
  6. data/Gemfile +13 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +182 -0
  9. data/Rakefile +1 -0
  10. data/conekta.gemspec +29 -0
  11. data/lib/conekta/address.rb +5 -0
  12. data/lib/conekta/card.rb +21 -0
  13. data/lib/conekta/charge.rb +25 -0
  14. data/lib/conekta/conekta_object.rb +109 -0
  15. data/lib/conekta/customer.rb +82 -0
  16. data/lib/conekta/customer_info.rb +5 -0
  17. data/lib/conekta/destination.rb +17 -0
  18. data/lib/conekta/details.rb +5 -0
  19. data/lib/conekta/discount_line.rb +19 -0
  20. data/lib/conekta/error.rb +99 -0
  21. data/lib/conekta/error_details.rb +14 -0
  22. data/lib/conekta/event.rb +9 -0
  23. data/lib/conekta/line_item.rb +21 -0
  24. data/lib/conekta/list.rb +59 -0
  25. data/lib/conekta/log.rb +10 -0
  26. data/lib/conekta/method.rb +4 -0
  27. data/lib/conekta/operations/create.rb +19 -0
  28. data/lib/conekta/operations/create_member.rb +40 -0
  29. data/lib/conekta/operations/custom_action.rb +13 -0
  30. data/lib/conekta/operations/delete.rb +45 -0
  31. data/lib/conekta/operations/find.rb +21 -0
  32. data/lib/conekta/operations/update.rb +11 -0
  33. data/lib/conekta/operations/where.rb +30 -0
  34. data/lib/conekta/order.rb +87 -0
  35. data/lib/conekta/payee.rb +66 -0
  36. data/lib/conekta/payment_method.rb +4 -0
  37. data/lib/conekta/payment_source.rb +17 -0
  38. data/lib/conekta/payout.rb +7 -0
  39. data/lib/conekta/payout_method.rb +17 -0
  40. data/lib/conekta/plan.rb +16 -0
  41. data/lib/conekta/refund.rb +6 -0
  42. data/lib/conekta/requestor.rb +80 -0
  43. data/lib/conekta/resource.rb +54 -0
  44. data/lib/conekta/return.rb +12 -0
  45. data/lib/conekta/shipping_contact.rb +19 -0
  46. data/lib/conekta/shipping_line.rb +20 -0
  47. data/lib/conekta/subscription.rb +25 -0
  48. data/lib/conekta/tax_line.rb +19 -0
  49. data/lib/conekta/token.rb +8 -0
  50. data/lib/conekta/transfer.rb +7 -0
  51. data/lib/conekta/util.rb +136 -0
  52. data/lib/conekta/version.rb +3 -0
  53. data/lib/conekta/webhook.rb +12 -0
  54. data/lib/conekta/webhook_log.rb +4 -0
  55. data/lib/conekta.rb +101 -0
  56. data/lib/ssl_data/ca_bundle.crt +3955 -0
  57. data/locales/en.yml +9 -0
  58. data/locales/es.yml +10 -0
  59. data/readme_files/banner.png +0 -0
  60. data/readme_files/conekta-badge.png +0 -0
  61. data/readme_files/ruby-badge.png +0 -0
  62. data/spec/conekta/1.0.0/.DS_Store +0 -0
  63. data/spec/conekta/1.0.0/card_spec.rb +40 -0
  64. data/spec/conekta/1.0.0/charge_spec.rb +152 -0
  65. data/spec/conekta/1.0.0/customer_spec.rb +147 -0
  66. data/spec/conekta/1.0.0/error_spec.rb +69 -0
  67. data/spec/conekta/1.0.0/event_spec.rb +26 -0
  68. data/spec/conekta/1.0.0/log_spec.rb +20 -0
  69. data/spec/conekta/1.0.0/payout_spec.rb +60 -0
  70. data/spec/conekta/1.0.0/plan_spec.rb +53 -0
  71. data/spec/conekta/1.0.0/token_spec.rb +5 -0
  72. data/spec/conekta/1.0.0/webhook_spec.rb +36 -0
  73. data/spec/conekta/2.0.0/customer_spec.rb +77 -0
  74. data/spec/conekta/2.0.0/discount_line_spec.rb +49 -0
  75. data/spec/conekta/2.0.0/error_spec.rb +61 -0
  76. data/spec/conekta/2.0.0/line_item_spec.rb +53 -0
  77. data/spec/conekta/2.0.0/list_spec.rb +29 -0
  78. data/spec/conekta/2.0.0/order_spec.rb +291 -0
  79. data/spec/conekta/2.0.0/payee_spec.rb +55 -0
  80. data/spec/conekta/2.0.0/shipping_contact_spec.rb +60 -0
  81. data/spec/conekta/2.0.0/shipping_line_spec.rb +53 -0
  82. data/spec/conekta/2.0.0/source_spec.rb +31 -0
  83. data/spec/conekta/2.0.0/tax_line_spec.rb +44 -0
  84. data/spec/conekta/2.0.0/transfer_spec.rb +59 -0
  85. data/spec/conekta_spec.rb +29 -0
  86. data/spec/spec_helper.rb +14 -0
  87. data/spec/support/fixtures/orders.json +1127 -0
  88. data/spec/support/shared_context.rb +49 -0
  89. metadata +229 -0
@@ -0,0 +1,66 @@
1
+ module Conekta
2
+ class Payee < Resource
3
+ include Conekta::Operations::Find
4
+ include Conekta::Operations::Where
5
+ include Conekta::Operations::Create
6
+ include Conekta::Operations::Delete
7
+ include Conekta::Operations::Update
8
+ include Conekta::Operations::CustomAction
9
+ include Conekta::Operations::CreateMember
10
+
11
+ attr_accessor :email, :name, :phone, :livemode, :default_destination_id,
12
+ :created_at
13
+
14
+ def load_from(response=nil)
15
+ if response
16
+ super
17
+ end
18
+ payee = self
19
+ if Conekta.api_version <= "1.0.0"
20
+ self.payout_methods.each do |k,v|
21
+ if !v.respond_to? :deleted || !v.deleted
22
+ v.create_attr('payee', payee)
23
+ self.payout_methods.set_val(k,v)
24
+ end
25
+ end
26
+ else
27
+ self.destinations.each do |k,v|
28
+ if !v.respond_to? :deleted || !v.deleted
29
+ v.create_attr('payee', payee)
30
+ self.destinations.set_val(k,v)
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ def create_payout_method(params)
37
+ raise_version_error("1.0.0") if Conekta.api_version > "1.0.0"
38
+ self.create_member('payout_methods', params)
39
+ end
40
+
41
+ def create_destination(params)
42
+ raise_version_error("2.0.0") if Conekta.api_version <= "1.0.0"
43
+ self.create_member('destinations', params)
44
+ end
45
+
46
+ private
47
+ def raise_version_error(version)
48
+ exception = Error.error_handler({
49
+ "details" => [{
50
+ "debug_message" => I18n.t(
51
+ 'error.conflict.version.unspecified',
52
+ { resource: self.class.class_name, locale: :en }
53
+ ),
54
+ "message" => I18n.t(
55
+ 'error.conflict.version.unspecified_purchaser',
56
+ { locale: Conekta.locale.to_sym }
57
+ ),
58
+ "param" => nil,
59
+ "code" => "error.conflict.version.unspecified"
60
+ }]
61
+ }, 409)
62
+
63
+ raise exception
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,4 @@
1
+ module Conekta
2
+ class PaymentMethod < Resource
3
+ end
4
+ end
@@ -0,0 +1,17 @@
1
+ module Conekta
2
+ class PaymentSource < Resource
3
+ include Conekta::Operations::Delete
4
+ include Conekta::Operations::Update
5
+ include Conekta::Operations::CustomAction
6
+
7
+ def _url
8
+ ensure_id
9
+
10
+ self.customer._url + self.class._url + "/" + id
11
+ end
12
+
13
+ def delete
14
+ self.delete_member('customer', 'payment_sources')
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,7 @@
1
+ module Conekta
2
+ class Payout < Resource
3
+ include Conekta::Operations::Find
4
+ include Conekta::Operations::Where
5
+ include Conekta::Operations::Create
6
+ end
7
+ end
@@ -0,0 +1,17 @@
1
+ module Conekta
2
+ class PayoutMethod < Resource
3
+ include Conekta::Operations::Delete
4
+ include Conekta::Operations::Update
5
+ include Conekta::Operations::CustomAction
6
+
7
+ def _url
8
+ ensure_id
9
+
10
+ self.payee._url + self.class._url + "/" + id
11
+ end
12
+
13
+ def delete
14
+ self.delete_member('payee','payout_methods')
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ module Conekta
2
+ class Plan < Resource
3
+ include Conekta::Operations::Find
4
+ include Conekta::Operations::Where
5
+ include Conekta::Operations::Create
6
+ include Conekta::Operations::Delete
7
+ include Conekta::Operations::Update
8
+ include Conekta::Operations::CustomAction
9
+ include Conekta::Operations::CreateMember
10
+
11
+ attr_accessor :livemode, :created_at, :name, :amount, :currency,
12
+ :interval, :frequency, :expiry_count, :trial_period_days,
13
+ :created_at
14
+
15
+ end
16
+ end
@@ -0,0 +1,6 @@
1
+ module Conekta
2
+ class Refund < Resource
3
+
4
+ attr_accessor :amount, :auth_code, :created_at
5
+ end
6
+ end
@@ -0,0 +1,80 @@
1
+ require 'faraday'
2
+ require 'base64'
3
+
4
+ module Conekta
5
+ class Requestor
6
+ require 'sys/uname'
7
+ include Sys
8
+
9
+ attr_reader :api_key
10
+
11
+ def initialize(api_key=nil)
12
+ if (api_key.nil?)
13
+ @api_key = Conekta.api_key
14
+ else
15
+ @api_key = api_key
16
+ end
17
+ end
18
+
19
+ def api_url(_url='')
20
+ api_base = Conekta.api_base
21
+ api_base + _url
22
+ end
23
+
24
+ def request(meth, _url, params = nil)
25
+ _url = self.api_url(_url)
26
+ meth = meth.downcase
27
+
28
+ begin
29
+ connection = build_connection(_url, params)
30
+ response = connection.method(meth).call do |req|
31
+ (if meth == :get then req.params = params else req.body = params.to_json end) if params
32
+ end
33
+ rescue Exception => e
34
+ raise Error.error_handler({}, nil)
35
+ end
36
+
37
+ json_response = JSON.parse(response.body)
38
+ raise Error.error_handler(json_response, response.status) if response.status != 200
39
+ json_response
40
+ end
41
+
42
+ private
43
+
44
+ def build_connection(_url, params = nil)
45
+ connection = Faraday.new(
46
+ :url => _url,
47
+ :ssl => { :ca_file=> File.dirname(__FILE__) + '/../ssl_data/ca_bundle.crt'}
48
+ ) do |faraday|
49
+ faraday.adapter Faraday.default_adapter
50
+ end
51
+
52
+ set_headers_for(connection)
53
+ return connection
54
+ end
55
+
56
+ def set_headers_for(connection)
57
+ connection.headers['Content-Type'] = 'application/json'
58
+ connection.headers['X-Conekta-Client-User-Agent'] = conekta_headers.to_json
59
+ connection.headers['User-Agent'] = 'Conekta/v1 RubyBindings/' + Conekta::VERSION
60
+ connection.headers['Accept'] = "application/vnd.conekta-v#{Conekta.api_version}+json"
61
+ connection.headers['Accept-Language'] = Conekta.locale.to_s
62
+ connection.headers['Authorization'] = "Basic #{ Base64.strict_encode64("#{self.api_key}" + ':')}"
63
+ return connection
64
+ end
65
+
66
+ def conekta_headers
67
+ params = {
68
+ bindings_version: Conekta::VERSION,
69
+ lang: 'ruby',
70
+ lang_version: RUBY_VERSION,
71
+ publisher: 'conekta',
72
+ uname: Uname.uname
73
+ }
74
+
75
+ params.merge!(plugin: Conekta.plugin) if Conekta.plugin.to_s.length > 0
76
+
77
+ @conekta_headers ||= params
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,54 @@
1
+ module Conekta
2
+ class Resource < ConektaObject
3
+
4
+ attr_accessor :id
5
+
6
+ def initialize(id=nil)
7
+ @id = id
8
+ super()
9
+ end
10
+
11
+ def self._url()
12
+ "/#{CGI.escape(underscored_class)}s"
13
+ end
14
+
15
+ def _url
16
+ ensure_id
17
+
18
+ return [self.class._url, id].join('/')
19
+ end
20
+
21
+ def self.underscored_class
22
+ Conekta::Util.underscore(self.to_s)
23
+ end
24
+
25
+ def create_member_with_relation(api_key, member, params, parent)
26
+ parent_klass = parent.class.underscored_class
27
+ child = self.create_member(api_key, member, params)
28
+ child.create_attr(parent_klass.to_s, parent)
29
+ return child
30
+ end
31
+
32
+ private
33
+ def ensure_id
34
+ if (id.nil? || id.to_s.empty?)
35
+ exception = Error.error_handler({
36
+ "details" => [{
37
+ "debug_message" => I18n.t(
38
+ 'error.resource.id',
39
+ { resource: self.class.class_name, locale: :en }
40
+ ),
41
+ "message" => I18n.t(
42
+ 'error.resource.id_purchaser',
43
+ { locale: Conekta.locale.to_sym }
44
+ ),
45
+ "param" => "id",
46
+ "code" => "error.resource.id"
47
+ }]
48
+ }, -2)
49
+
50
+ raise exception
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,12 @@
1
+ module Conekta
2
+ class Return < Resource
3
+
4
+ attr_accessor :livemode, :amount, :currency, :charge_id, :reason,
5
+ :created_at, :parent_id
6
+ def _url
7
+ ensure_id
8
+
9
+ "#{self.order._url}#{self.class._url}/#{id}"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ module Conekta
2
+ class ShippingContact < Resource
3
+ include Conekta::Operations::Delete
4
+ include Conekta::Operations::Update
5
+ include Conekta::Operations::CustomAction
6
+
7
+ attr_accessor :receiver, :phone, :between_streets, :parent_id, :default
8
+
9
+ def _url
10
+ ensure_id
11
+
12
+ self.customer._url + self.class._url + "/" + id
13
+ end
14
+
15
+ def delete
16
+ self.delete_member('customer', 'shipping_contacts')
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ module Conekta
2
+ class ShippingLine < Resource
3
+ include Conekta::Operations::Delete
4
+ include Conekta::Operations::Update
5
+ include Conekta::Operations::CustomAction
6
+
7
+ attr_accessor :description, :amount, :carrier, :shipping_line_method, :tracking_number,
8
+ :parent_id, :metadata
9
+
10
+ def _url
11
+ ensure_id
12
+
13
+ "#{self.order._url}#{self.class._url}/#{id}"
14
+ end
15
+
16
+ def delete
17
+ self.delete_member('order', 'shipping_lines')
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,25 @@
1
+ module Conekta
2
+ class Subscription < Resource
3
+ include Conekta::Operations::Update
4
+ include Conekta::Operations::CustomAction
5
+
6
+ attr_accessor :created_at, :subscription_start, :canceled_at, :paused_at,
7
+ :billing_cycle_start, :billing_cycle_end, :trial_start,
8
+ :trial_end, :plan_id, :customer_id, :card_id
9
+
10
+ def _url
11
+ ensure_id
12
+
13
+ self.customer._url + "/subscription"
14
+ end
15
+ def pause
16
+ custom_action(:post, 'pause')
17
+ end
18
+ def resume
19
+ custom_action(:post, 'resume')
20
+ end
21
+ def cancel
22
+ custom_action(:post, 'cancel')
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,19 @@
1
+ module Conekta
2
+ class TaxLine < Resource
3
+ include Conekta::Operations::Delete
4
+ include Conekta::Operations::Update
5
+ include Conekta::Operations::CustomAction
6
+
7
+ attr_accessor :description, :amount, :parent_id, :metadata
8
+
9
+ def _url
10
+ ensure_id
11
+
12
+ "#{self.order._url}#{self.class._url}/#{id}"
13
+ end
14
+
15
+ def delete
16
+ self.delete_member('order', 'tax_lines')
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,8 @@
1
+ module Conekta
2
+ class Token < Resource
3
+ include Conekta::Operations::Find
4
+ include Conekta::Operations::Create
5
+
6
+ attr_accessor :livemode, :used
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ module Conekta
2
+ class Transfer < Resource
3
+ include Conekta::Operations::Find
4
+ include Conekta::Operations::Where
5
+ include Conekta::Operations::Create
6
+ end
7
+ end
@@ -0,0 +1,136 @@
1
+ module Conekta
2
+ module Util
3
+
4
+ def self.types
5
+ @types ||= {
6
+ 'customer_info' => ::Conekta::CustomerInfo,
7
+ 'details' => ::Conekta::Details,
8
+ 'bank_transfer_payment' => ::Conekta::PaymentMethod,
9
+ 'bank_transfer_payout_method' => ::Conekta::Method,
10
+ 'card' => ::Conekta::Card,
11
+ 'card_payment' => ::Conekta::PaymentMethod,
12
+ 'cash_payment' => ::Conekta::PaymentMethod,
13
+ 'charge' => ::Conekta::Charge,
14
+ 'customer' => ::Conekta::Customer,
15
+ 'event' => ::Conekta::Event,
16
+ 'log' => ::Conekta::Log,
17
+ 'payee' => ::Conekta::Payee,
18
+ 'payout' => ::Conekta::Payout,
19
+ 'payout_method' => ::Conekta::PayoutMethod,
20
+ 'destination' => ::Conekta::Destination,
21
+ 'plan' => ::Conekta::Plan,
22
+ 'subscription' => ::Conekta::Subscription,
23
+ 'token' => ::Conekta::Token,
24
+ 'webhook' => ::Conekta::Webhook,
25
+ 'webhook_log' => ::Conekta::WebhookLog,
26
+ 'refund' => ::Conekta::Refund,
27
+ 'line_item' => ::Conekta::LineItem,
28
+ 'address' => ::Conekta::Address,
29
+ 'billing_address' => ::Conekta::Address,
30
+ 'shipping_address' => ::Conekta::Address,
31
+ 'order' => ::Conekta::Order,
32
+ 'payment_source' => ::Conekta::PaymentSource,
33
+ 'tax_line' => ::Conekta::TaxLine,
34
+ 'shipping_line' => ::Conekta::ShippingLine,
35
+ 'discount_line' => ::Conekta::DiscountLine,
36
+ 'shipping_contact' => ::Conekta::ShippingContact,
37
+ 'transfer' => ::Conekta::Transfer,
38
+ 'list' => ::Conekta::List
39
+ }
40
+ end
41
+
42
+ def self.convert_to_conekta_object(name,resp)
43
+ # these json strings should not be parsed into objects
44
+ return resp if ["data", "request_body", "request_headers", "response_headers", "response_body", "query_string", "metadata", "antifraud_info"].include?(name)
45
+ if resp.kind_of?(Hash)
46
+ if resp.has_key?('object') and types[resp['object']]
47
+ if resp['object'] == "list"
48
+ instance = types[resp['object']].new(name, resp)
49
+ else
50
+ instance = types[resp['object']].new()
51
+ end
52
+
53
+ instance.load_from(resp)
54
+
55
+ return instance
56
+ elsif name.instance_of? String
57
+ name = "shippin_line_method" if name == "method"
58
+ name = "event_data" if camelize(name) == "Data"
59
+ name = "obj" if camelize(name) == "Object"
60
+ if !Object.const_defined?(camelize(name))
61
+ instance = Object.const_set(camelize(name), Class.new(ConektaObject)).new
62
+ else
63
+ begin
64
+ instance = constantize("Conekta::"+camelize(name)).new
65
+ rescue # Class is not defined
66
+ instance = constantize(camelize(name)).new
67
+ end
68
+ end
69
+
70
+ instance.load_from(resp)
71
+
72
+ return instance
73
+ end
74
+ end
75
+
76
+ if resp.kind_of?(Array)
77
+ instance = ConektaObject.new
78
+ instance.load_from(resp)
79
+ if !resp.empty? and resp.first.instance_of? Hash and !resp.first["object"]
80
+ resp.each_with_index do |r, i|
81
+ obj = convert_to_conekta_object(name,r)
82
+ instance.set_val(i,obj)
83
+ instance[i] = obj
84
+ end
85
+ end
86
+ return instance
87
+ end
88
+ return instance
89
+ end
90
+
91
+ def self.underscore(str)
92
+ str.split(/::/).last.
93
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
94
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
95
+ tr("-", "_").
96
+ downcase
97
+ end
98
+
99
+ protected
100
+
101
+ def self.camelize(str)
102
+ str.split('_').map{|e| e.capitalize}.join
103
+ end
104
+
105
+ def self.constantize(camel_cased_word)
106
+ names = camel_cased_word.split('::')
107
+
108
+ # Trigger a builtin NameError exception including the ill-formed constant in the message.
109
+ Object.const_get(camel_cased_word) if names.empty?
110
+
111
+ # Remove the first blank element in case of '::ClassName' notation.
112
+ names.shift if names.size > 1 && names.first.empty?
113
+
114
+ names.inject(Object) do |constant, name|
115
+ if constant == Object
116
+ constant.const_get(name)
117
+ else
118
+ candidate = constant.const_get(name)
119
+ next candidate if constant.const_defined?(name, false)
120
+ next candidate unless Object.const_defined?(name)
121
+
122
+ # Go down the ancestors to check it it's owned
123
+ # directly before we reach Object or the end of ancestors.
124
+ constant = constant.ancestors.inject do |const, ancestor|
125
+ break const if ancestor == Object
126
+ break ancestor if ancestor.const_defined?(name, false)
127
+ const
128
+ end
129
+
130
+ # owner is in Object, so raise
131
+ constant.const_get(name, false)
132
+ end
133
+ end
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,3 @@
1
+ module Conekta
2
+ VERSION = '2.4.2'.freeze
3
+ end
@@ -0,0 +1,12 @@
1
+ module Conekta
2
+ class Webhook < Resource
3
+ include Conekta::Operations::Find
4
+ include Conekta::Operations::Where
5
+ include Conekta::Operations::Create
6
+ include Conekta::Operations::Delete
7
+ include Conekta::Operations::Update
8
+ include Conekta::Operations::CustomAction
9
+
10
+ attr_accessor :url, :status, :production_enabled, :development_enabled, :subscribed_events
11
+ end
12
+ end
@@ -0,0 +1,4 @@
1
+ module Conekta
2
+ class WebhookLog < Resource
3
+ end
4
+ end
data/lib/conekta.rb ADDED
@@ -0,0 +1,101 @@
1
+ require "json"
2
+ require "i18n"
3
+
4
+ require "conekta/version"
5
+
6
+ require "conekta/operations/find"
7
+ require "conekta/operations/where"
8
+ require "conekta/operations/create"
9
+ require "conekta/operations/delete"
10
+ require "conekta/operations/update"
11
+ require "conekta/operations/custom_action"
12
+ require "conekta/operations/create_member"
13
+
14
+ require "conekta/conekta_object"
15
+ require "conekta/list"
16
+ require "conekta/resource"
17
+ require "conekta/requestor"
18
+ require "conekta/util"
19
+ require "conekta/error"
20
+ require "conekta/error_details"
21
+
22
+ require "conekta/customer_info"
23
+ require "conekta/details"
24
+ require "conekta/event"
25
+ require "conekta/charge"
26
+ require "conekta/customer"
27
+ require "conekta/card"
28
+ require "conekta/discount_line"
29
+ require "conekta/log"
30
+ require "conekta/method"
31
+ require "conekta/order"
32
+ require "conekta/payment_method"
33
+ require "conekta/payee"
34
+ require "conekta/payout"
35
+ require "conekta/payout_method"
36
+ require "conekta/destination"
37
+ require "conekta/plan"
38
+ require "conekta/shipping_contact"
39
+ require "conekta/shipping_line"
40
+ require "conekta/payment_source"
41
+ require "conekta/subscription"
42
+ require "conekta/tax_line"
43
+ require "conekta/token"
44
+ require "conekta/transfer"
45
+ require "conekta/webhook"
46
+ require "conekta/webhook_log"
47
+ require "conekta/refund"
48
+ require "conekta/line_item"
49
+ require "conekta/address"
50
+
51
+ module Conekta
52
+ I18n.load_path += Dir[File.join(File.expand_path('../..', __FILE__), 'locales', '*.{rb,yml}').to_s]
53
+
54
+ @api_base = 'https://api.conekta.io'
55
+ @api_version = '2.0.0'
56
+ @locale = 'es'
57
+
58
+ def self.config
59
+ yield self
60
+ end
61
+
62
+ def self.plugin
63
+ @plugin
64
+ end
65
+
66
+ def self.plugin=(plugin)
67
+ @plugin = plugin
68
+ end
69
+
70
+ def self.api_base
71
+ @api_base
72
+ end
73
+
74
+ def self.api_base=(api_base)
75
+ @api_base = api_base
76
+ end
77
+
78
+ def self.api_version
79
+ @api_version
80
+ end
81
+
82
+ def self.api_version=(api_version)
83
+ @api_version = api_version
84
+ end
85
+
86
+ def self.api_key
87
+ @api_key
88
+ end
89
+
90
+ def self.api_key=(api_key)
91
+ @api_key = api_key
92
+ end
93
+
94
+ def self.locale
95
+ @locale
96
+ end
97
+
98
+ def self.locale=(locale)
99
+ @locale = locale
100
+ end
101
+ end