Sha256: 7ef4fe57c147c32fdcfd4fe9ba421c5a0b5882e19f6e159743a5c05fcb496009

Contents?: true

Size: 776 Bytes

Versions: 2

Compression:

Stored size: 776 Bytes

Contents

require 'faraday'
require 'faraday_middleware'
require 'erb'

module MTG
  module RestClient

    def self.get(endpoint, params=nil)
      if params.nil?
        query = endpoint
      else
        query = "#{endpoint}?#{params_to_query(params)}"
      end
      
      client.get(query)
    end
    
    protected
    
    def self.client
      @client = Faraday.new "#{API_URL}/v#{MTG.configuration.api_version}" do |conn|
        conn.response :xml,  :content_type => /\bxml$/
        conn.response :json, :content_type => /\bjson$/    
        conn.adapter Faraday.default_adapter
      end
    end
            
    def self.params_to_query(params)
      params.map {|p, v| "#{p}=#{ERB::Util.url_encode(v.to_s)}"}.join('&')
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mtg_sdk-3.2.0 lib/mtg_sdk/rest_client.rb
mtg_sdk-3.1.0 lib/mtg_sdk/rest_client.rb