Sha256: 56dbf9384552e98f8cd125bcfe9d073f05f0bef3fd61fb7bbae793abd873f984

Contents?: true

Size: 673 Bytes

Versions: 1

Compression:

Stored size: 673 Bytes

Contents

# frozen_string_literal: true

module LedgerSync
  module Adaptors
    module QuickBooksOnline
      module Operation
        TYPES = %i[create find update].freeze

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

          def perform
            super
          rescue OAuth2::Error => e
            failure(e)
          end
        end

        TYPES.each do |type|
          klass = Class.new do
            include QuickBooksOnline::Operation::Mixin
          end
          Operation.const_set(LedgerSync::Util::StringHelpers.camelcase(type.to_s), klass)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ledger_sync-1.1.1 lib/ledger_sync/adaptors/quickbooks_online/operation.rb