module RSimperium::ApiHelpers
Public Instance Methods
api_auth_header()
click to toggle source
# File lib/r_simperium/api_helpers.rb, line 8 def api_auth_header if @host == 'auth.simperium.com' {'X-Simperium-API-Key' => "#{@api_key}"} elsif @host == 'api.simperium.com' {'X-Simperium-Token' => "#{@auth_token}"} else {} end end
api_meta(headers)
click to toggle source
# File lib/r_simperium/api_helpers.rb, line 51 def api_meta(headers) meta = {} headers.each {|k,v| new_key = RSimperium::META_MAP[k] next if new_key.nil? if v =~ /^[-+]?[0-9]+$/ meta[new_key] = v.to_i else meta[new_key] = v end } OpenStruct.new(meta) end
api_request(method, url, options={})
click to toggle source
# File lib/r_simperium/api_helpers.rb, line 18 def api_request(method, url, options={}) RSimperium.log "> Api Request: #{method.to_s.upcase} #{url}" RSimperium.log " Options: #{options}" request = options.merge(:method => method, :url => url) request[:headers] ||= {} request[:headers][:accept] ||= :json request[:timeout] = -1 if options[:timeout] == false if request[:params] request[:params].each do |k,v| request[:params][k] = '1' if v == true end # RestClient is weird, it wants the params in the headers hash request[:headers][:params] = request[:params] end response = RestClient::Request.execute request RSimperium.log ">> Response: #{response}\n\n" begin parsed = (response && response.length >= 2) ? MultiJson.decode(response) : response Struct::ApiResponse.new(api_meta(response.headers), parsed, response) rescue JSON::ParserError Struct::ApiResponse.new(api_meta(response.headers), response.to_s, response) end end
api_request_with_auth(method, url, options={})
click to toggle source
# File lib/r_simperium/api_helpers.rb, line 45 def api_request_with_auth(method, url, options={}) options[:headers] ||= {} options[:headers].merge! api_auth_header api_request(method, url, options) end
api_url(path)
click to toggle source
# File lib/r_simperium/api_helpers.rb, line 4 def api_url(path) "#{@scheme}://#{@host}/1/#{@app_id}#{path}" end