Sha256: 153b4769ca1775bcf1a366cae3a4539070898e164aaad5a2ebb5541b804b6572

Contents?: true

Size: 1.74 KB

Versions: 3

Compression:

Stored size: 1.74 KB

Contents

module AruxApp
  module API
    class Config
      attr_accessor :auth

      def initialize(options = {})
        self.auth = options[:auth]

        raise API::InitializerError.new(:auth, "can't be blank") if self.auth.nil?
        raise API::InitializerError.new(:auth, "must be of class type AruxApp::API::Auth") if !self.auth.is_a?(AruxApp::API::Auth)
      end

      def self.public_uri
        AruxApp::API.uri(subdomain: "config")
      end

      def public_uri
        self.class.public_uri
      end

      def self.api_uri
        AruxApp::API.uri(subdomain: "config.api")
      end

      def api_uri
        self.class.api_uri
      end

      def get(subdomain_or_sn)
        subdomain_or_sn = AruxApp::API.uri_escape(subdomain_or_sn.to_s)

        request = HTTPI::Request.new
        request.url = "#{api_uri}/v1/customers/#{subdomain_or_sn}"
        request.headers = self.generate_headers

        response = HTTPI.get(request)

        if !response.error?
          JSON.parse(response.body)
        else
          raise(API::Error.new(response.code, response.body))
        end
      end

      def get_by(key, value)
        key = AruxApp::API.uri_escape(key.to_s)
        value = AruxApp::API.uri_escape(value.to_s)

        request = HTTPI::Request.new
        request.url = "#{api_uri}/v1/customers/by/#{key}/#{value}"
        request.headers = self.generate_headers

        response = HTTPI.get(request)

        if !response.error?
          JSON.parse(response.body)
        else
          raise(API::Error.new(response.code, response.body))
        end
      end

      protected

      def generate_headers
        {'User-Agent' => USER_AGENT, 'Client-Secret' => self.auth.client_secret, 'Client-Id' => self.auth.client_id}
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
arux_app-3.0.2 lib/arux_app/api/config.rb
arux_app-3.0.1 lib/arux_app/api/config.rb
arux_app-3.0.0 lib/arux_app/api/config.rb