class EventQL::Query
Public Class Methods
new(client, query_str, query_opts = {})
click to toggle source
# File lib/eventql_query.rb, line 8 def initialize(client, query_str, query_opts = {}) @client = client @query_str = query_str @query_opts = query_opts end
Public Instance Methods
execute!()
click to toggle source
# File lib/eventql_query.rb, line 14 def execute! request = Net::HTTP::Post.new("/api/v1/sql") request.add_field("Content-Type", "application/json") if @client.has_auth_token? request.add_field("Authorization", "Token #{@client.get_auth_token}") end request.body = { :query => @query_str, :database => @client.get_database, :format => "json" }.to_json http = Net::HTTP.new(@client.get_host, @client.get_port) response = http.request(request) response_json = JSON.parse(response.body) rescue nil if response_json && response_json.has_key?("error") raise response_json["error"] end if response_json.nil? || response.code.to_i != 200 raise "HTTP ERROR (#{response.code}): #{response.body[0..128]}" end return response_json["results"] end