Sha256: c2a853f8a67cdc18b384e7cc06376539ca400587954ebe61f3b9a21df889ee2b

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

module DHLEcommerceAPI
  class Configuration
    attr_accessor :client_id, :password, :env, :pickup_account_id, :sold_to_account_id, :env
  end

  PRODUCTION_SITE = "https://api.dhlecommerce.dhl.com"
  PRE_PRODUCTION_SITE = "https://apitest.dhlecommerce.asia"
  SANDBOX_SITE = "https://sandbox.dhlecommerce.asia"

  class << self
    def config
      @config ||= Configuration.new
    end

    def after_configure
      site = get_url(config.env)

      if defined?(Rails) && 
        # set cache
        if Rails.respond_to?(:cache) && Rails.cache.is_a?(ActiveSupport::Cache::Store)
          DHLEcommerceAPI.cache = Rails.cache
        end
        # set env if defined
        if Rails.respond_to?(:env)
          site = get_url(Rails.env)
        end
      end
      
      DHLEcommerceAPI::Base.site = site
      DHLEcommerceAPI::Authentication.site = site
    end

    def get_url(env)
      case env
      when "production"
        PRODUCTION_SITE
      when "staging"
        PRE_PRODUCTION_SITE
      when "preproduction"
        PRE_PRODUCTION_SITE
      else
        SANDBOX_SITE
      end
    end

    def configure
      yield config
      after_configure
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dhl_ecommerce_api-0.1.19 lib/dhl_ecommerce_api/configuration.rb
dhl_ecommerce_api-0.1.18 lib/dhl_ecommerce_api/configuration.rb