Class: JeraPayment::Services::Iugu::Invoices::Duplicate

Inherits:
Base
  • Object
show all
Defined in:
lib/jera_payment/services/iugu/invoices/duplicate.rb

Instance Method Summary collapse

Constructor Details

#initialize(resource, attributes) ⇒ Duplicate

Returns a new instance of Duplicate.



6
7
8
9
# File 'lib/jera_payment/services/iugu/invoices/duplicate.rb', line 6

def initialize(resource, attributes)
  @resource = resource
  @attributes = attributes
end

Instance Method Details

#callObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/jera_payment/services/iugu/invoices/duplicate.rb', line 11

def call
  begin
    ApplicationRecord.transaction do
      iugu_invoice_duplicated = JeraPayment::Api::Iugu::Invoice.duplicate(@resource.api_id, @attributes,
                                                                          @resource&.&.api_token)

      raise(StandardError, iugu_invoice_duplicated[:errors]) if iugu_invoice_duplicated[:errors].present?

      invoice_duplicated = set_new_invoice(iugu_invoice_duplicated)

      raise(StandardError, invoice_duplicated[:errors]) if invoice_duplicated[:errors].present?

      @resource = invoice_duplicated
    end
  rescue Exception => error
    add_error(error.message)
  end
  @resource
end