class BuildkiteGraphqlRuby::QueryRunner

Public Instance Methods

run_query(query:, options:) click to toggle source
# File lib/buildkite_graphql_ruby/query_runner.rb, line 10
def run_query(query:, options:)
  request_from_api(query, options)
end

Private Instance Methods

request_from_api(query, options) click to toggle source
# File lib/buildkite_graphql_ruby/query_runner.rb, line 16
def request_from_api(query, options)
  payload = {
    query: query,
  }.to_json

  uri = URI.parse("https://graphql.buildkite.com/v1")
  https = Net::HTTP.new(uri.host,uri.port)
  https.use_ssl = true
  https.read_timeout = 500
  req = Net::HTTP::Post.new(uri.path, initheader = {'Authorization' =>"Bearer #{options.api_token}"})
  req.body = payload
  res = https.request(req)

  raise ResponseError, res.message if res.code_type != Net::HTTPOK

  JSON.parse(res.body)
end