Sha256: 4e863b4184d05d9c2024c42eda2bd9e356a36d92c0bcbfa22f05f75004e6243f

Contents?: true

Size: 762 Bytes

Versions: 5

Compression:

Stored size: 762 Bytes

Contents

# frozen_string_literal: true

module IronBank
  # Identify and return the proper base URL for a given Zuora domain.
  #
  class Endpoint
    private_class_method :new

    PRODUCTION  = /\Arest\.zuora\.com\z/i.freeze
    SERVICES    = /\A(rest)?services(\d+)\.zuora\.com(:\d+)?\z/i.freeze
    APISANDBOX  = /\Arest.apisandbox.zuora\.com\z/i.freeze

    def self.base_url(domain = "")
      new(domain).base_url
    end

    def base_url
      case domain
      when PRODUCTION
        "https://rest.zuora.com/"
      when SERVICES
        "https://#{domain}/".downcase
      when APISANDBOX
        "https://rest.apisandbox.zuora.com/"
      end
    end

    private

    attr_reader :domain

    def initialize(domain)
      @domain = domain
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
iron_bank-5.2.0 lib/iron_bank/endpoint.rb
iron_bank-5.1.1 lib/iron_bank/endpoint.rb
iron_bank-5.1.0 lib/iron_bank/endpoint.rb
iron_bank-4.4.3 lib/iron_bank/endpoint.rb
iron_bank-5.0.1 lib/iron_bank/endpoint.rb