Sha256: 4453330ecbe9788b3cfa54dca51e555c379ccd2ab745993f943cfcf98c97ea79

Contents?: true

Size: 939 Bytes

Versions: 3

Compression:

Stored size: 939 Bytes

Contents

# frozen_string_literal: true

module DuodealerApp
  module SessionStorage
    extend ActiveSupport::Concern

    included do
      if DuodealerApp.configuration.per_user_tokens?
        extend DuodealerApp::SessionStorage::UserStorageStrategy
      else
        extend DuodealerApp::SessionStorage::AccountStorageStrategy
      end

      validates :duodealer_token, presence: true
      validates :api_version, presence: true
      validates :duodealer_domain, presence: true,
        if: Proc.new { |_| DuodealerApp.configuration.per_user_tokens? }
      validates :duodealer_domain, presence: true, uniqueness: { case_sensitive: false },
        if: Proc.new { |_| !DuodealerApp.configuration.per_user_tokens? }
    end

    def with_duodealer_session(&block)
      DuodealerAPI::Session.temp(
        domain: duodealer_domain,
        token: duodealer_token,
        api_version: api_version,
        &block
      )
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
duodealer_app-1.0.4 lib/duodealer_app/session/session_storage.rb
duodealer_app-1.0.3 lib/duodealer_app/session/session_storage.rb
duodealer_app-1.0.2 lib/duodealer_app/session/session_storage.rb