jera_payment 1.0.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 (110) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +2 -0
  4. data/app/controllers/jera_payment/callbacks_controller.rb +22 -0
  5. data/app/controllers/jera_payment/jera_payment_controller.rb +5 -0
  6. data/config/locale/jera_payment.pt-BR.yml +243 -0
  7. data/config/routes.rb +5 -0
  8. data/lib/generators/active_record/jera_payment_generator.rb +59 -0
  9. data/lib/generators/active_record/templates/create_jera_payment_charges.rb +36 -0
  10. data/lib/generators/active_record/templates/create_jera_payment_credit_cards.rb +20 -0
  11. data/lib/generators/active_record/templates/create_jera_payment_customers.rb +22 -0
  12. data/lib/generators/active_record/templates/create_jera_payment_households.rb +18 -0
  13. data/lib/generators/active_record/templates/create_jera_payment_invoices.rb +42 -0
  14. data/lib/generators/active_record/templates/create_jera_payment_plans.rb +18 -0
  15. data/lib/generators/active_record/templates/create_jera_payment_sub_accounts.rb +39 -0
  16. data/lib/generators/active_record/templates/create_jera_payment_subscriptions.rb +26 -0
  17. data/lib/generators/active_record/templates/create_jera_payment_transfers.rb +15 -0
  18. data/lib/generators/active_record/templates/create_jera_payment_withdrawals.rb +15 -0
  19. data/lib/generators/jera_payment/install_generator.rb +68 -0
  20. data/lib/generators/jera_payment/jera_payment_generator.rb +46 -0
  21. data/lib/generators/jera_payment/templates/jera_payment.rb +9 -0
  22. data/lib/jera_payment.rb +39 -0
  23. data/lib/jera_payment/api/iugu/base.rb +55 -0
  24. data/lib/jera_payment/api/iugu/charge.rb +12 -0
  25. data/lib/jera_payment/api/iugu/customer.rb +37 -0
  26. data/lib/jera_payment/api/iugu/household.rb +13 -0
  27. data/lib/jera_payment/api/iugu/invoice.rb +55 -0
  28. data/lib/jera_payment/api/iugu/payment_method.rb +39 -0
  29. data/lib/jera_payment/api/iugu/payment_token.rb +12 -0
  30. data/lib/jera_payment/api/iugu/plan.rb +42 -0
  31. data/lib/jera_payment/api/iugu/sub_account.rb +40 -0
  32. data/lib/jera_payment/api/iugu/subscription.rb +72 -0
  33. data/lib/jera_payment/api/iugu/transfer.rb +24 -0
  34. data/lib/jera_payment/api/iugu/withdrawal.rb +26 -0
  35. data/lib/jera_payment/application.rb +79 -0
  36. data/lib/jera_payment/engine.rb +5 -0
  37. data/lib/jera_payment/models/charge.rb +30 -0
  38. data/lib/jera_payment/models/concerns/household_methods.rb +33 -0
  39. data/lib/jera_payment/models/concerns/invoice_methods.rb +42 -0
  40. data/lib/jera_payment/models/concerns/resource_callbacks.rb +40 -0
  41. data/lib/jera_payment/models/concerns/sub_account_methods.rb +18 -0
  42. data/lib/jera_payment/models/concerns/subscription_methods.rb +34 -0
  43. data/lib/jera_payment/models/concerns/transfer_methods.rb +18 -0
  44. data/lib/jera_payment/models/concerns/withdrawal_methods.rb +18 -0
  45. data/lib/jera_payment/models/credit_card.rb +16 -0
  46. data/lib/jera_payment/models/customer.rb +14 -0
  47. data/lib/jera_payment/models/household.rb +51 -0
  48. data/lib/jera_payment/models/invoice.rb +49 -0
  49. data/lib/jera_payment/models/plan.rb +16 -0
  50. data/lib/jera_payment/models/sub_account.rb +53 -0
  51. data/lib/jera_payment/models/subscription.rb +29 -0
  52. data/lib/jera_payment/models/transfer.rb +20 -0
  53. data/lib/jera_payment/models/withdrawal.rb +24 -0
  54. data/lib/jera_payment/parsers/iugu/charge_parser.rb +39 -0
  55. data/lib/jera_payment/parsers/iugu/credit_card_parser.rb +31 -0
  56. data/lib/jera_payment/parsers/iugu/household_parser.rb +16 -0
  57. data/lib/jera_payment/parsers/iugu/invoice_parser.rb +31 -0
  58. data/lib/jera_payment/parsers/iugu/sub_account_parser.rb +26 -0
  59. data/lib/jera_payment/parsers/iugu/transfer_parser.rb +15 -0
  60. data/lib/jera_payment/services/iugu/base.rb +23 -0
  61. data/lib/jera_payment/services/iugu/charges/create.rb +30 -0
  62. data/lib/jera_payment/services/iugu/credit_cards/create.rb +40 -0
  63. data/lib/jera_payment/services/iugu/credit_cards/destroy.rb +23 -0
  64. data/lib/jera_payment/services/iugu/credit_cards/update.rb +19 -0
  65. data/lib/jera_payment/services/iugu/customers/create.rb +27 -0
  66. data/lib/jera_payment/services/iugu/customers/destroy.rb +22 -0
  67. data/lib/jera_payment/services/iugu/customers/update.rb +30 -0
  68. data/lib/jera_payment/services/iugu/handle_callbacks/invoice/base.rb +24 -0
  69. data/lib/jera_payment/services/iugu/handle_callbacks/invoice/created.rb +8 -0
  70. data/lib/jera_payment/services/iugu/handle_callbacks/invoice/due.rb +8 -0
  71. data/lib/jera_payment/services/iugu/handle_callbacks/invoice/dunning_action.rb +8 -0
  72. data/lib/jera_payment/services/iugu/handle_callbacks/invoice/installment_released.rb +8 -0
  73. data/lib/jera_payment/services/iugu/handle_callbacks/invoice/payment_failed.rb +8 -0
  74. data/lib/jera_payment/services/iugu/handle_callbacks/invoice/refund.rb +8 -0
  75. data/lib/jera_payment/services/iugu/handle_callbacks/invoice/released.rb +8 -0
  76. data/lib/jera_payment/services/iugu/handle_callbacks/invoice/status_changed.rb +8 -0
  77. data/lib/jera_payment/services/iugu/handle_callbacks/referrals/bank_verification.rb +39 -0
  78. data/lib/jera_payment/services/iugu/handle_callbacks/referrals/base.rb +16 -0
  79. data/lib/jera_payment/services/iugu/handle_callbacks/referrals/verification.rb +24 -0
  80. data/lib/jera_payment/services/iugu/handle_callbacks/subscription/activated.rb +12 -0
  81. data/lib/jera_payment/services/iugu/handle_callbacks/subscription/base.rb +18 -0
  82. data/lib/jera_payment/services/iugu/handle_callbacks/subscription/changed.rb +12 -0
  83. data/lib/jera_payment/services/iugu/handle_callbacks/subscription/created.rb +12 -0
  84. data/lib/jera_payment/services/iugu/handle_callbacks/subscription/expired.rb +12 -0
  85. data/lib/jera_payment/services/iugu/handle_callbacks/subscription/renewed.rb +12 -0
  86. data/lib/jera_payment/services/iugu/handle_callbacks/subscription/suspended.rb +8 -0
  87. data/lib/jera_payment/services/iugu/handle_callbacks/withdraw_request/base.rb +16 -0
  88. data/lib/jera_payment/services/iugu/handle_callbacks/withdraw_request/created.rb +8 -0
  89. data/lib/jera_payment/services/iugu/handle_callbacks/withdraw_request/status_changed.rb +20 -0
  90. data/lib/jera_payment/services/iugu/households/create.rb +19 -0
  91. data/lib/jera_payment/services/iugu/invoices/create.rb +31 -0
  92. data/lib/jera_payment/services/iugu/invoices/duplicate.rb +54 -0
  93. data/lib/jera_payment/services/iugu/invoices/send_email.rb +18 -0
  94. data/lib/jera_payment/services/iugu/invoices/update_status.rb +31 -0
  95. data/lib/jera_payment/services/iugu/plans/create.rb +26 -0
  96. data/lib/jera_payment/services/iugu/plans/destroy.rb +17 -0
  97. data/lib/jera_payment/services/iugu/plans/update.rb +18 -0
  98. data/lib/jera_payment/services/iugu/sub_accounts/create.rb +26 -0
  99. data/lib/jera_payment/services/iugu/sub_accounts/update.rb +19 -0
  100. data/lib/jera_payment/services/iugu/sub_accounts/verify.rb +38 -0
  101. data/lib/jera_payment/services/iugu/subscriptions/change_plan.rb +41 -0
  102. data/lib/jera_payment/services/iugu/subscriptions/create.rb +29 -0
  103. data/lib/jera_payment/services/iugu/subscriptions/destroy.rb +26 -0
  104. data/lib/jera_payment/services/iugu/subscriptions/update.rb +18 -0
  105. data/lib/jera_payment/services/iugu/subscriptions/update_credits.rb +37 -0
  106. data/lib/jera_payment/services/iugu/subscriptions/update_situation.rb +36 -0
  107. data/lib/jera_payment/services/iugu/transfers/create.rb +28 -0
  108. data/lib/jera_payment/services/iugu/withdrawals/create.rb +27 -0
  109. data/lib/jera_payment/version.rb +3 -0
  110. metadata +208 -0
@@ -0,0 +1,18 @@
1
+ class CreateJeraPaymentHouseholds < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :jera_payment_households do |t|
4
+
5
+ t.references :sub_account
6
+ t.string :agency
7
+ t.string :account
8
+ t.integer :account_type
9
+ t.integer :bank
10
+ t.string :document
11
+ t.integer :status
12
+ t.string :feedback
13
+ t.boolean :verification, default: false
14
+
15
+ t.timestamps null: false
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,42 @@
1
+ class CreateJeraPaymentInvoices < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :jera_payment_invoices do |t|
4
+
5
+ t.string :api_id
6
+ t.belongs_to :customer
7
+ t.belongs_to :sub_account
8
+ t.integer :status
9
+ t.string :email
10
+ t.string :cc_emails
11
+ t.string :due_date
12
+ t.boolean :ensure_workday_due_date
13
+ t.text :items
14
+ t.integer :total_cents
15
+ t.integer :discount_cents
16
+ t.string :payable_with
17
+ t.string :return_url
18
+ t.string :expired_url
19
+ t.string :notification_url
20
+ t.boolean :fines
21
+ t.string :late_payment_fine
22
+ t.boolean :per_day_interest
23
+ t.boolean :ignore_due_email, default: false
24
+ t.boolean :ignore_canceled_email
25
+ t.boolean :current_fines_option
26
+ t.boolean :keep_early_payment_discount
27
+ t.string :subscription_api_id
28
+ t.integer :credits
29
+ t.boolean :early_payment_discount, default: false
30
+ t.text :early_payment_discounts
31
+ t.text :payer
32
+ t.string :paid_at
33
+ t.string :secure_url
34
+ t.string :digitable_line
35
+ t.string :barcode_data
36
+ t.string :barcode
37
+ t.boolean :duplicated, default: false
38
+
39
+ t.timestamps null: false
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,18 @@
1
+ class CreateJeraPaymentPlans < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :jera_payment_plans do |t|
4
+
5
+ t.string :api_id
6
+ t.string :name
7
+ t.string :identifier
8
+ t.integer :interval
9
+ t.string :interval_type
10
+ t.integer :value_cents
11
+ t.string :payable_with
12
+ t.text :features
13
+ t.references :sub_account
14
+
15
+ t.timestamps null: false
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,39 @@
1
+ class CreateJeraPaymentSubAccounts < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :jera_payment_sub_accounts do |t|
4
+
5
+ t.references :current_household
6
+ t.references :sub_accountable, polymorphic: true, index: {name: 'index_jera_payment_sub_accounts_on_sub_accountable' }
7
+ t.string :account_id
8
+ t.string :live_api_token
9
+ t.string :test_api_token
10
+ t.string :user_token
11
+ t.string :name
12
+ t.text :comissions
13
+ t.boolean :auto_withdraw
14
+ t.boolean :fines
15
+ t.boolean :per_day_interest
16
+ t.integer :late_payment_fine
17
+ t.boolean :auto_advance
18
+ t.string :auto_advance_type
19
+ t.integer :auto_advance_option
20
+ t.text :bank_slip
21
+ t.text :credit_card
22
+ t.boolean :payment_email_notification
23
+ t.string :payment_email_notification_receiver
24
+ t.boolean :early_payment_discount
25
+ t.text :early_payment_discounts
26
+ t.integer :subscriptions_billing_days
27
+ t.integer :subscriptions_trial_period
28
+ t.string :default_return_url
29
+ t.string :owner_emails_to_notify
30
+ t.string :resp_name
31
+ t.string :resp_cpf
32
+ t.boolean :can_receive?
33
+ t.boolean :is_verified?
34
+ t.string :last_verification_request_feedback
35
+
36
+ t.timestamps null: false
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,26 @@
1
+ class CreateJeraPaymentSubscriptions < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :jera_payment_subscriptions do |t|
4
+
5
+ t.string :api_id
6
+ t.belongs_to :customer
7
+ t.string :plan_identifier
8
+ t.string :expires_at
9
+ t.boolean :only_on_charge_success
10
+ t.boolean :ignore_due_email
11
+ t.string :payable_with
12
+ t.boolean :credits_based
13
+ t.integer :price_cents
14
+ t.integer :credits_cycle
15
+ t.integer :credits_min
16
+ t.text :subitems
17
+ t.text :custom_variables
18
+ t.boolean :suspended
19
+ t.boolean :active
20
+ t.boolean :skip_charge
21
+ t.string :credits
22
+
23
+ t.timestamps null: false
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,15 @@
1
+ class CreateJeraPaymentTransfers < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :jera_payment_transfers do |t|
4
+
5
+ t.string :api_id
6
+ t.references :sub_account
7
+ t.references :receiver
8
+ t.integer :amount_cents
9
+ t.string :amount_localized
10
+ t.text :custom_variables
11
+
12
+ t.timestamps null: false
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ class CreateJeraPaymentWithdrawals < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :jera_payment_withdrawals do |t|
4
+
5
+ t.string :api_id
6
+ t.float :amount
7
+ t.text :custom_variables
8
+ t.integer :status
9
+ t.string :feedback
10
+ t.references :sub_account
11
+
12
+ t.timestamps null: false
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,68 @@
1
+ require 'rails/generators/base'
2
+
3
+ module JeraPayment
4
+ module Generators
5
+
6
+ class InstallGenerator < Rails::Generators::Base
7
+ source_root File.expand_path("../templates", __FILE__)
8
+
9
+ def initializer_file
10
+ template 'jera_payment.rb', 'config/initializers/jera_payment.rb'
11
+ end
12
+
13
+ def locale_file
14
+ copy_file '../../../../config/locale/jera_payment.pt-BR.yml', 'config/locales/jera_payment.pt-BR.yml'
15
+ end
16
+
17
+ def generate_migrations
18
+ case self.behavior
19
+ when :invoke
20
+ generate "active_record:jera_payment", "migration"
21
+ when :revoke
22
+ Rails::Generators.invoke "active_record:jera_payment", ["migration"], behavior: :revoke
23
+ end
24
+ end
25
+
26
+ def callback_services
27
+ copy_subscription_files
28
+ copy_invoice_files
29
+ copy_sub_account_files
30
+ copy_withdrawal_files
31
+ end
32
+
33
+ private
34
+ def copy_subscription_files
35
+ files = ['base', 'activated', 'changed', 'created', 'expired', 'renewed', 'suspended']
36
+
37
+ files.each do |file|
38
+ copy_file "../../../jera_payment/services/iugu/handle_callbacks/subscription/#{file}.rb", "app/services/iugu/handle_callbacks/subscription/#{file}.rb"
39
+ end
40
+ end
41
+
42
+ def copy_invoice_files
43
+ files = ['base', 'created', 'due', 'dunning_action', 'installment_released', 'payment_failed', 'refund', 'released', 'status_changed']
44
+
45
+ files.each do |file|
46
+ copy_file "../../../jera_payment/services/iugu/handle_callbacks/invoice/#{file}.rb", "app/services/iugu/handle_callbacks/invoice/#{file}.rb"
47
+ end
48
+ end
49
+
50
+ def copy_sub_account_files
51
+ files = ['base', 'verification', 'bank_verification']
52
+
53
+ files.each do |file|
54
+ copy_file "../../../jera_payment/services/iugu/handle_callbacks/referrals/#{file}.rb", "app/services/iugu/handle_callbacks/referrals/#{file}.rb"
55
+ end
56
+ end
57
+
58
+ def copy_withdrawal_files
59
+ files = ['base', 'created', 'status_changed']
60
+
61
+ files.each do |file|
62
+ copy_file "../../../jera_payment/services/iugu/handle_callbacks/withdraw_request/#{file}.rb", "app/services/iugu/handle_callbacks/withdraw_request/#{file}.rb"
63
+ end
64
+ end
65
+
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,46 @@
1
+ class JeraPaymentGenerator < Rails::Generators::NamedBase
2
+ desc "This generator creates an initializer file at config/initializers"
3
+ source_root File.expand_path("../templates", __FILE__)
4
+
5
+ MissingModel = Class.new(Thor::Error)
6
+
7
+ def generate_relation
8
+ unless model_exists?
9
+ raise MissingModel,
10
+ "\n\tModel \"#{file_name.titlecase}\" doesn't exists. Please, create your Model and try again."
11
+ end
12
+
13
+ unless args.present?
14
+ raise MissingModel,
15
+ "\n\tYou need to pass an JeraPayment Model (Customer or/and SubAccount)"
16
+ end
17
+
18
+ args.each do |arg|
19
+ inject_into_file model_path, "\n\thas_one :#{arg.underscore}, as: :#{polymorfic_model_name(arg)}, class_name: 'JeraPayment::#{arg}'", after: '< ActiveRecord::Base'
20
+
21
+ inject_into_file model_path, "\n\thas_one :#{arg.underscore}, as: :#{polymorfic_model_name(arg)}, class_name: 'JeraPayment::#{arg}'", after: '< ApplicationRecord'
22
+ end
23
+
24
+ end
25
+
26
+ private
27
+
28
+ def model_exists?
29
+ File.exist?(File.join(destination_root, model_path))
30
+ end
31
+
32
+ def model_path
33
+ @model_path ||= File.join("app", "models", "#{file_path}.rb")
34
+ end
35
+
36
+ def polymorfic_model_name(arg)
37
+ case arg
38
+ when "Customer"
39
+ return "customerable"
40
+ when "SubAccount"
41
+ return "sub_accountable"
42
+ end
43
+
44
+ raise MissingModel, "\n\tJera Payment Model \"#{arg}\" doesn't exists. Available models: Customer and SubAccount"
45
+ end
46
+ end
@@ -0,0 +1,9 @@
1
+ #this is the intilizer
2
+ #here you will set up the jera payment configuration
3
+ JeraPayment.setup do |config|
4
+ config.api = 'YOUR_API' # :pagar_me, :iugu, :mercado_pago
5
+ config.api_key = 'YOUR_PRODUCTION_API_KEY' # string
6
+ config.api_key_test = 'YOUR_DEVELOPMENT_API_KEY' # string
7
+ config.account_id = 'YOUR_API_ACCOUNT_ID' # string
8
+ config.is_test = 'TRUE_OF_FALSE' # boolean
9
+ end
@@ -0,0 +1,39 @@
1
+ require 'jera_payment/application'
2
+
3
+ module JeraPayment
4
+
5
+ autoload :Customer, 'jera_payment/models/customer.rb'
6
+ autoload :CreditCard, 'jera_payment/models/credit_card.rb'
7
+ autoload :Invoice, 'jera_payment/models/invoice.rb'
8
+ autoload :Charge, 'jera_payment/models/charge.rb'
9
+ autoload :Plan, 'jera_payment/models/plan.rb'
10
+ autoload :Subscription, 'jera_payment/models/subscription.rb'
11
+ autoload :SubAccount, 'jera_payment/models/sub_account.rb'
12
+ autoload :Withdrawal, 'jera_payment/models/withdrawal.rb'
13
+ autoload :Household, 'jera_payment/models/household.rb'
14
+
15
+ mattr_accessor :api
16
+ @@api = nil
17
+
18
+ mattr_accessor :api_key
19
+ @@api_key = nil
20
+
21
+ mattr_accessor :api_key_test
22
+ @@api_key_test = nil
23
+
24
+ mattr_accessor :account_id
25
+ @@account_id = nil
26
+
27
+ mattr_accessor :is_test
28
+ @@is_test = nil
29
+
30
+ def self.setup
31
+ yield self
32
+ end
33
+
34
+ @iugu_base_url = 'https://api.iugu.com/v1'
35
+
36
+ def self.iugu_base_url
37
+ @iugu_base_url
38
+ end
39
+ end
@@ -0,0 +1,55 @@
1
+ require 'base64'
2
+ require 'json'
3
+ require 'httparty'
4
+
5
+ module JeraPayment
6
+ module Api
7
+ module Iugu
8
+ class Base
9
+
10
+ def self.get(endpoint, query, account_access_token)
11
+ response = HTTParty.get("#{JeraPayment.iugu_base_url}/#{endpoint}", headers: set_headers(account_access_token), query: query)
12
+ parse_response(response)
13
+ end
14
+
15
+ def self.post(endpoint, body, account_access_token)
16
+ response = HTTParty.post("#{JeraPayment.iugu_base_url}/#{endpoint}", headers: set_headers(account_access_token), body: body.to_json)
17
+ parse_response(response)
18
+ end
19
+
20
+ def self.put(endpoint, body, account_access_token)
21
+ response = HTTParty.put("#{JeraPayment.iugu_base_url}/#{endpoint}", headers: set_headers(account_access_token), body: body.to_json)
22
+ parse_response(response)
23
+ end
24
+
25
+ def self.delete(endpoint, account_access_token)
26
+ response = HTTParty.delete("#{JeraPayment.iugu_base_url}/#{endpoint}", headers: set_headers(account_access_token))
27
+ parse_response(response)
28
+ end
29
+
30
+ def self.set_headers(account_access_token)
31
+ return { 'Content-Type': 'application/json', 'Authorization': "Basic #{Base64.encode64(ensure_account_access_token(account_access_token))}" }
32
+ end
33
+
34
+ def self.ensure_account_access_token(account_access_token)
35
+ if account_access_token.nil?
36
+ account_access_token = JeraPayment.is_test ? JeraPayment.api_key_test : JeraPayment.api_key
37
+ else
38
+ account_access_token
39
+ end
40
+ end
41
+
42
+ def self.parse_response(response)
43
+ if response.parsed_response.is_a?(Array) && response.parsed_response.first.is_a?(Hash)
44
+ response.parsed_response.map(&:deep_symbolize_keys)
45
+ elsif response.parsed_response.is_a?(Hash)
46
+ response.parsed_response.deep_symbolize_keys
47
+ else
48
+ response.parsed_response
49
+ end
50
+ end
51
+
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,12 @@
1
+ module JeraPayment
2
+ module Api
3
+ module Iugu
4
+ class Charge < Base
5
+ BASE_ENDPOINT = 'charge'
6
+ def self.create(body = {}, access_token = nil)
7
+ response = post(BASE_ENDPOINT, body, access_token)
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,37 @@
1
+ module JeraPayment
2
+ module Api
3
+ module Iugu
4
+ class Customer < Base
5
+
6
+ BASE_ENDPOINT = 'customers'
7
+
8
+ def self.index(query = nil, access_token = nil)
9
+ response = get(BASE_ENDPOINT, query, access_token)
10
+ end
11
+
12
+ def self.show(id, access_token = nil)
13
+ url = "#{BASE_ENDPOINT}/#{id}"
14
+
15
+ response = get(url, nil, access_token)
16
+ end
17
+
18
+ def self.create(body = {}, access_token = nil)
19
+ response = post(BASE_ENDPOINT, body, access_token)
20
+ end
21
+
22
+ def self.update(id, body = {}, access_token = nil)
23
+ url = "#{BASE_ENDPOINT}/#{id}"
24
+
25
+ response = put(url, body, access_token)
26
+ end
27
+
28
+ def self.destroy(id, access_token = nil)
29
+ url = "#{BASE_ENDPOINT}/#{id}"
30
+
31
+ response = delete(url, access_token)
32
+ end
33
+
34
+ end
35
+ end
36
+ end
37
+ end