class BlackVulture::Client

Attributes

email[RW]
token[RW]

Public Class Methods

new(email, token) click to toggle source
# File lib/black_vulture_client.rb, line 8
def initialize(email, token)
  @email = email
  @token = token
end

Public Instance Methods

create_fact(payload) click to toggle source
# File lib/black_vulture_client.rb, line 26
def create_fact(payload)
  uri = uri('/facts.json')
  response = post(uri, payload)
  JSON.parse(response.body)
end
create_report(line, query) click to toggle source
# File lib/black_vulture_client.rb, line 20
def create_report(line, query)
  uri = uri_for_report(line, query)
  response = get(uri)
  JSON.parse(response.body)
end
list_facts(line) click to toggle source
# File lib/black_vulture_client.rb, line 13
def list_facts(line)
  url_path = "/facts/#{line}.json"
  uri = uri(url_path)
  response = get(uri)
  JSON.parse(response.body)
end
update_fact(payload) click to toggle source
# File lib/black_vulture_client.rb, line 32
def update_fact(payload)
  uri = uri('/facts/update.json')
  response = post(uri, payload)
  JSON.parse(response.body)
end

Private Instance Methods

build_http(uri) click to toggle source
# File lib/black_vulture_client.rb, line 57
def build_http(uri)
  Net::HTTP.new(uri.host, uri.port)
end
get(uri) click to toggle source
# File lib/black_vulture_client.rb, line 61
def get(uri)
  build_http(uri).get(uri.request_uri, headers)
end
headers() click to toggle source
# File lib/black_vulture_client.rb, line 40
def headers
  {
    'X-User-Token' => @token,
    'X-User-Email' => @email,
    'Accept' => 'application/json',
    'Content-Type' => 'application/json'
  }
end
host() click to toggle source
# File lib/black_vulture_client.rb, line 49
def host
  ENV["BLACK_VULTURE_URL"] || "http://52.32.38.238"
end
post(uri, payload) click to toggle source
# File lib/black_vulture_client.rb, line 65
def post(uri, payload)
  build_http(uri).post(uri.path, payload.to_json, headers)
end
uri(name) click to toggle source
# File lib/black_vulture_client.rb, line 53
def uri(name)
  URI.parse("#{host}#{name}")
end
uri_for_report(line, query) click to toggle source
# File lib/black_vulture_client.rb, line 69
def uri_for_report(line, query)
  URI.parse("#{host}/reports/#{line}#{query}")
end