Sha256: 486d22347d9f732a98664e05007cd231d68d466c3d8dfb37def7d28b8d478acb

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

require 'oauth2'

module LedgerSync
  module Adaptors
    module Stripe
      class Adaptor < LedgerSync::Adaptors::Adaptor
        attr_reader :api_key

        def initialize(
          api_key:
        )
          @api_key = api_key
        end

        def url_for(resource:)
          base_url = 'https://dashboard.stripe.com'
          resource_path = case resource
                          when LedgerSync::Customer
                            "/customers/#{resource.ledger_id}"
                          else
                            raise Error::AdaptorError::UnknownURLFormat.new(
                              adaptor: self,
                              resource: resource
                            )
                          end

          base_url + resource_path
        end

        def wrap_perform
          ::Stripe.api_key = api_key
          yield
        ensure
          ::Stripe.api_key = nil
        end

        def self.ledger_attributes_to_save
          []
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ledger_sync-1.3.4 lib/ledger_sync/adaptors/stripe/adaptor.rb
ledger_sync-1.3.3 lib/ledger_sync/adaptors/stripe/adaptor.rb
ledger_sync-1.3.2 lib/ledger_sync/adaptors/stripe/adaptor.rb
ledger_sync-1.3.1 lib/ledger_sync/adaptors/stripe/adaptor.rb