class Veyor::Request

Attributes

args[RW]
body[RW]
options[RW]
route[RW]
verbose[RW]

Public Class Methods

new(route, args, body, options, verbose) click to toggle source
# File lib/veyor/request.rb, line 75
def initialize(route, args, body, options, verbose)
  self.route   = route
  self.args    = args
  self.body    = body
  self.options = options
  self.verbose = verbose
end

Public Instance Methods

_veyor_delete(route) click to toggle source
# File lib/veyor/request.rb, line 133
def _veyor_delete(route)
  tok = Veyor.account_token
  if tok.nil?
    raise 'could not find env var APPVEYOR_API_TOKEN; please set it'
  end
  conn = get_conn
  conn.delete do |req|
    req.url '/api/' + route
    req.headers["Authorization"] = "Bearer " + tok
  end
end
_veyor_get(route, opts) click to toggle source
# File lib/veyor/request.rb, line 108
def _veyor_get(route, opts)
  tok = Veyor.account_token
  conn = get_conn
  conn.get do |req|
    req.url '/api/' + route
    req.params = opts
    req.headers["Content-Type"] = "application/json"
    req.headers["Authorization"] = "Bearer " + tok if tok
  end
end
_veyor_post(route, body) click to toggle source
# File lib/veyor/request.rb, line 119
def _veyor_post(route, body)
  tok = Veyor.account_token
  if tok.nil?
    raise 'could not find env var APPVEYOR_API_TOKEN; please set it'
  end
  conn = get_conn
  conn.post do |req|
    req.url '/api/' + route
    req.body = MultiJson.dump(body)
    req.headers["Content-Type"] = "application/json"
    req.headers["Authorization"] = "Bearer " + tok
  end
end
delete() click to toggle source
# File lib/veyor/request.rb, line 163
def delete
  return _veyor_delete(self.route).status
end
get() click to toggle source
# File lib/veyor/request.rb, line 153
def get
  res = _veyor_get(self.route, self.args)
  return parse_result(res)
end
get_conn() click to toggle source
# File lib/veyor/request.rb, line 83
def get_conn
  # if args.nil?
  #   args = {}
  # end

  if self.verbose
    conn = Faraday.new(:url => Veyor.base_url, :request => self.options) do |f|
      f.request :url_encoded
      f.response :logger
      f.use CustomErrors
      f.adapter  Faraday.default_adapter
    end
  else
    conn = Faraday.new(:url => Veyor.base_url, :request => self.options) do |f|
      f.request :url_encoded
      f.use CustomErrors
      f.adapter  Faraday.default_adapter
    end
  end

  conn.headers[:user_agent] = make_ua
  conn.headers["X-USER-AGENT"] = make_ua
  return conn
end
parse_result(z) click to toggle source
# File lib/veyor/request.rb, line 145
def parse_result(z)
  if z.headers['content-type'].match('json').nil?
    return z.body
  else
    return MultiJson.load(z.body)
  end
end
post() click to toggle source
# File lib/veyor/request.rb, line 158
def post
  res = _veyor_post(self.route, self.body)
  return parse_result(res)
end