Sha256: 4f764cc13a8651efcc146fc9f72f42c13a78f95af88c7423f3112e9f79d34e6c

Contents?: true

Size: 1.02 KB

Versions: 5

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

module LedgerSync
  module Adaptors
    module NetSuiteSOAP
      module Operation
        module Mixin
          def self.included(base)
            base.include Adaptors::Operation::Mixin
            base.include InstanceMethods
          end

          module InstanceMethods
            def netsuite_resource_class
              @netsuite_resource_class ||= ledger_serializer.class::NETSUITE_RESOURCE_CLASS
            end

            def netsuite_error(netsuite_resource:)
              Error::OperationError.new(
                message: netsuite_resource.errors.first.message,
                operation: self,
                response: netsuite_resource
              )
            end

            def netsuite_failure(netsuite_resource:)
              failure(netsuite_error(netsuite_resource: netsuite_resource))
            end

            def perform
              adaptor.wrap_perform do
                super
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ledger_sync-1.3.5 lib/ledger_sync/adaptors/netsuite_soap/operation.rb
ledger_sync-1.3.4 lib/ledger_sync/adaptors/netsuite_soap/operation.rb
ledger_sync-1.3.3 lib/ledger_sync/adaptors/netsuite_soap/operation.rb
ledger_sync-1.3.2 lib/ledger_sync/adaptors/netsuite_soap/operation.rb
ledger_sync-1.3.1 lib/ledger_sync/adaptors/netsuite_soap/operation.rb