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,20 @@
1
+ class JeraPayment::Transfer < ActiveRecord::Base
2
+ include JeraPayment::Concerns::ResourceCallbacks
3
+ include JeraPayment::Concerns::TransferMethods
4
+
5
+ attr_readonly :api_id, :sub_account_id, :receiver, :amount_cents, :amount_localized, :custom_variables
6
+
7
+ self.table_name = 'jera_payment_transfers'
8
+
9
+ belongs_to :sub_account, class_name: 'JeraPayment::SubAccount'
10
+ belongs_to :receiver, class_name: 'JeraPayment::SubAccount'
11
+
12
+ def custom_variables=(value)
13
+ write_attribute(:custom_variables, value&.to_json)
14
+ end
15
+
16
+ def custom_variables
17
+ ActiveSupport::JSON.decode(self[:custom_variables]).map{ |item| item.deep_symbolize_keys } if self[:custom_variables]
18
+ end
19
+
20
+ end
@@ -0,0 +1,24 @@
1
+ class JeraPayment::Withdrawal < ActiveRecord::Base
2
+ require 'enumerize'
3
+
4
+ include JeraPayment::Concerns::ResourceCallbacks
5
+ include JeraPayment::Concerns::WithdrawalMethods
6
+ extend Enumerize
7
+
8
+ attr_readonly :api_id, :sub_account, :amount, :custom_variables
9
+
10
+ self.table_name = 'jera_payment_withdrawals'
11
+
12
+ belongs_to :sub_account, class_name: 'JeraPayment::SubAccount'
13
+
14
+ enumerize :status, in: { pending: 0, processing: 1, rejected: 2, accepted: 3 }, predicates: true, scope: true, default: :pending
15
+
16
+ def custom_variables=(value)
17
+ write_attribute(:custom_variables, value&.to_json)
18
+ end
19
+
20
+ def custom_variables
21
+ ActiveSupport::JSON.decode(self[:custom_variables]).map{ |item| item.deep_symbolize_keys } if self[:custom_variables]
22
+ end
23
+
24
+ end
@@ -0,0 +1,39 @@
1
+ module JeraPayment
2
+ module Parsers
3
+ module Iugu
4
+ class ChargeParser
5
+ def self.charge_body(resource)
6
+ {
7
+ invoice_id: resource&.invoice&.api_id,
8
+ customer_payment_method_id: resource.customer_payment_method_api_id,
9
+ restrict_payment_method: resource.restrict_payment_method,
10
+ customer_id: resource.customer_api_id,
11
+ email: resource.email,
12
+ months: resource.months,
13
+ discount_cents: resource.discount_cents,
14
+ bank_slip_extra_days: resource.bank_slip_extra_days,
15
+ keep_dunning: resource.keep_dunning,
16
+ items: resource.items,
17
+ payer: {
18
+ cpf_cnpj: resource.cpf_cnpj,
19
+ name: resource.name,
20
+ phone_prefix: resource.phone_prefix,
21
+ phone: resource.phone,
22
+ email: resource.email,
23
+ address: {
24
+ zip_code: resource.zip_code,
25
+ street: resource.street,
26
+ number: resource.number,
27
+ neighborhood: resource.neighborhood,
28
+ city: resource.city,
29
+ state: resource.state,
30
+ country: resource.country,
31
+ complement: resource.complement
32
+ },
33
+ },
34
+ }
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,31 @@
1
+ module JeraPayment
2
+ module Parsers
3
+ module Iugu
4
+ class CreditCardParser
5
+ def self.parse_payment_token(resource)
6
+ {
7
+ account_id: resource&.customer&.sub_account&.present? ? resource&.customer&.sub_account&.account_id : JeraPayment.account_id,
8
+ method: 'credit_card',
9
+ test: resource.test,
10
+ data: {
11
+ number: resource.number,
12
+ verification_value: resource.cvv,
13
+ first_name: resource.first_name,
14
+ last_name: resource.last_name,
15
+ month: resource.month,
16
+ year: resource.year
17
+ }
18
+ }
19
+ end
20
+ def self.parse_payment_method(resource, credit_card_token_id)
21
+ {
22
+ token: credit_card_token_id,
23
+ description: resource.description,
24
+ set_as_default: true
25
+ }
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+
@@ -0,0 +1,16 @@
1
+ module JeraPayment
2
+ module Parsers
3
+ module Iugu
4
+ class HouseholdParser
5
+ def self.create_household(household)
6
+ {
7
+ agency: household.agency,
8
+ account: household.account,
9
+ account_type: household.account_type.checking? ? 'cc' : 'cp',
10
+ bank: household.bank_iugu_code
11
+ }
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,31 @@
1
+ module JeraPayment
2
+ module Parsers
3
+ module Iugu
4
+ class InvoiceParser
5
+ def self.invoice_creation(resource)
6
+ {
7
+ email: resource.email,
8
+ cc_emails: resource.cc_emails,
9
+ due_date: resource.due_date,
10
+ ensure_workday_due_date: resource.ensure_workday_due_date,
11
+ items: resource.items,
12
+ return_url: resource.return_url,
13
+ expired_url: resource.expired_url,
14
+ notification_url: resource.notification_url,
15
+ fines: resource.fines,
16
+ late_payment_fine: resource.late_payment_fine,
17
+ per_day_interest: resource.per_day_interest,
18
+ discount_cents: resource.discount_cents,
19
+ ignore_due_email: resource.ignore_due_email,
20
+ subscription_id: resource.subscription_api_id,
21
+ payable_with: resource.payable_with,
22
+ credits: resource.credits,
23
+ early_payment_discount: resource.early_payment_discount,
24
+ early_payment_discounts: resource.early_payment_discounts,
25
+ payer: resource.payer
26
+ }
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,26 @@
1
+ module JeraPayment
2
+ module Parsers
3
+ module Iugu
4
+ class SubAccountParser
5
+ def self.parse_account_configuration(resource)
6
+ {
7
+ comissions: resource.comissions,
8
+ auto_withdraw: resource.auto_withdraw,
9
+ fines: resource.fines,
10
+ per_day_interest: resource.per_day_interest,
11
+ late_payment_fine: resource.late_payment_fine,
12
+ auto_advance: resource.auto_advance,
13
+ auto_advance_type: resource.auto_advance_type,
14
+ auto_advance_option: resource.auto_advance_option,
15
+ bank_slip: resource.bank_slip,
16
+ credit_card: resource.credit_card,
17
+ payment_email_notification: resource.payment_email_notification,
18
+ payment_email_notification_receiver: resource.payment_email_notification_receiver,
19
+ early_payment_discount: resource.early_payment_discount,
20
+ early_payment_discounts: resource.early_payment_discounts
21
+ }
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,15 @@
1
+ module JeraPayment
2
+ module Parsers
3
+ module Iugu
4
+ class TransferParser
5
+ def self.parse_creation(resource)
6
+ {
7
+ receiver_id: resource.receiver.api_id,
8
+ amount_cents: resource.amount_cents,
9
+ custom_variables: resource.custom_variables
10
+ }
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ module JeraPayment
2
+ module Services
3
+ module Iugu
4
+ class Base
5
+ def initialize(resource)
6
+ @resource = resource
7
+ @attributes = @resource.attributes
8
+ end
9
+
10
+ private
11
+ def add_error(errors)
12
+ if errors.is_a?(Hash)
13
+ errors.each{ |key, error| @resource.errors.messages.merge!( { "#{key}": error } ) }
14
+ elsif errors.is_a?(String)
15
+ @resource.errors.add(:base, errors)
16
+ elsif errors.is_a?(Array)
17
+ errors.each{ |error| @resource.errors.add(:base, error) }
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,30 @@
1
+ module JeraPayment
2
+ module Services
3
+ module Iugu
4
+ module Charges
5
+ class Create < JeraPayment::Services::Iugu::Base
6
+ def call
7
+ charge_body = JeraPayment::Parsers::Iugu::ChargeParser.charge_body(@resource)
8
+ charge_body.merge!({ method: @resource.method}) if @resource.method.present?
9
+ charge_body.merge!({ token: @resource.token}) if @resource.token.present?
10
+
11
+ iugu_charge = JeraPayment::Api::Iugu::Charge.create(charge_body, @resource&.sub_account&.api_token)
12
+
13
+ if iugu_charge[:errors].present?
14
+ add_error(iugu_charge[:errors])
15
+ else
16
+ set_api_attributes(iugu_charge)
17
+ end
18
+
19
+ @resource.errors.blank?
20
+ end
21
+
22
+ private
23
+ def set_api_attributes(attributes)
24
+ @resource.assign_attributes(attributes.slice(:url, :pdf, :identification))
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,40 @@
1
+ module JeraPayment
2
+ module Services
3
+ module Iugu
4
+ module CreditCards
5
+ class Create < JeraPayment::Services::Iugu::Base
6
+ def call
7
+ credit_card_token = create_credit_card_token
8
+
9
+ add_error(credit_card_token[:errors]) and return false if credit_card_token[:errors].present?
10
+
11
+ set_payment_token_attributes(credit_card_token)
12
+
13
+ link_credit_card_response = link_credit_card(credit_card_token[:id])
14
+
15
+ add_error(link_credit_card_response[:errors]) and return false if link_credit_card_response[:errors].present?
16
+
17
+ @resource.api_id = link_credit_card_response[:id]
18
+ end
19
+
20
+ private
21
+ def create_credit_card_token
22
+ JeraPayment::Api::Iugu::PaymentToken.create(JeraPayment::Parsers::Iugu::CreditCardParser.parse_payment_token(@resource),
23
+ @resource.customer&.sub_account&.api_token)
24
+ end
25
+
26
+ def set_payment_token_attributes(credit_card_token)
27
+ @resource.assign_attributes(brand: credit_card_token[:extra_info][:brand], number: credit_card_token[:extra_info][:display_number], cvv: nil)
28
+ end
29
+
30
+ def link_credit_card(credit_card_token_id)
31
+ eval("JeraPayment::Api::Iugu::PaymentMethod.create(@resource.customer.api_id,
32
+ JeraPayment::Parsers::Iugu::CreditCardParser.parse_payment_method(@resource, credit_card_token_id),
33
+ @resource.customer&.sub_account&.api_token)")
34
+ end
35
+
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,23 @@
1
+ module JeraPayment
2
+ module Services
3
+ module Iugu
4
+ module CreditCards
5
+ class Destroy < JeraPayment::Services::Iugu::Base
6
+ def call
7
+ iugu_delete = JeraPayment::Api::Iugu::PaymentMethod.destroy(@resource.customer.api_id, @resource.api_id,
8
+ @resource.customer&.sub_account&.api_token)
9
+
10
+ if iugu_delete[:errors].present?
11
+ add_error(iugu_delete[:errors])
12
+ else
13
+ @resource.destroy
14
+ end
15
+
16
+ @resource.errors.blank?
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ module JeraPayment
2
+ module Services
3
+ module Iugu
4
+ module CreditCards
5
+ class Update < JeraPayment::Services::Iugu::Base
6
+ def call
7
+ iugu_credit_card = JeraPayment::Api::Iugu::PaymentMethod.update(@resource.customer.api_id, @resource.api_id, @resource.attributes,
8
+ @resource.customer&.sub_account&.api_token)
9
+
10
+ add_error(iugu_credit_card[:errors]) if iugu_credit_card[:errors].present?
11
+
12
+ @resource.errors.blank?
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,27 @@
1
+ module JeraPayment
2
+ module Services
3
+ module Iugu
4
+ module Customers
5
+ class Create < JeraPayment::Services::Iugu::Base
6
+ def call
7
+ iugu_customer = JeraPayment::Api::Iugu::Customer.create(@attributes, @resource&.sub_account&.api_token)
8
+
9
+ if iugu_customer[:errors].present?
10
+ add_error(iugu_customer[:errors])
11
+ else
12
+ set_api_attributes(iugu_customer)
13
+ end
14
+
15
+ @resource.errors.blank?
16
+ end
17
+
18
+ private
19
+ def set_api_attributes(attributes)
20
+ @resource.api_id = attributes[:id]
21
+ @resource.assign_attributes(attributes.slice(:email, :name, :phone, :cpf_cpnj, :city, :state, :street, :number, :zip_code))
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,22 @@
1
+ module JeraPayment
2
+ module Services
3
+ module Iugu
4
+ module Customers
5
+ class Destroy < JeraPayment::Services::Iugu::Base
6
+ def call
7
+ iugu_delete = JeraPayment::Api::Iugu::Customer.destroy(@resource.api_id, @resource&.sub_account&.api_token)
8
+
9
+ if iugu_delete[:errors].present?
10
+ add_error(iugu_delete[:errors])
11
+ else
12
+ @resource.destroy
13
+ end
14
+
15
+ @resource.errors.blank?
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,30 @@
1
+ module JeraPayment
2
+ module Services
3
+ module Iugu
4
+ module Customers
5
+ class Update < JeraPayment::Services::Iugu::Base
6
+ def call
7
+ iugu_customer = JeraPayment::Api::Iugu::Customer.update(
8
+ @resource.api_id,
9
+ @attributes,
10
+ @resource&.sub_account&.api_token
11
+ )
12
+
13
+ if iugu_customer[:errors].present?
14
+ add_error(iugu_customer[:errors])
15
+ else
16
+ set_api_attributes(iugu_customer)
17
+ end
18
+
19
+ @resource.errors.blank?
20
+ end
21
+
22
+ private
23
+ def set_api_attributes(attributes)
24
+ @resource.assign_attributes(attributes.slice(:email, :name, :phone, :cpf_cpnj))
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,24 @@
1
+ module Iugu
2
+ module HandleCallbacks
3
+ module Invoice
4
+ class Base
5
+ def initialize(params)
6
+ @params = params
7
+ end
8
+
9
+ def call
10
+ Rails.logger.info("======> #{@params}")
11
+
12
+ @invoice = ::JeraPayment::Invoice.find_by(api_id: @params["data"]["id"])
13
+
14
+ return 404 unless @invoice.present?
15
+
16
+ return 200 if @invoice.update(status: @params["data"]["status"])
17
+
18
+ return 500
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end