Module: HackathonDrone::REST

Defined in:
lib/hackathon_drone/rest.rb

Class Method Summary collapse

Class Method Details

.do_request(host, port, request) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/hackathon_drone/rest.rb', line 8

def self.do_request(host, port, request)
  response = Net::HTTP.new(host, port).start {|http| http.request(request)}
  if response.is_a?(Net::HTTPSuccess)
    response.body ?  JSON.parse(response.body) : nil
  else
    puts "Error: #{response.code} #{response.message}: #{response.body}"
    exit
  end
end

.get(host, port, path) ⇒ Object



24
25
26
27
# File 'lib/hackathon_drone/rest.rb', line 24

def self.get(host, port, path)
  request = Net::HTTP::Get.new(path, {"Content-Type" => "application/json"})
  self.do_request(host, port, request)
end

.post(host, port, path, payload = nil) ⇒ Object



18
19
20
21
22
# File 'lib/hackathon_drone/rest.rb', line 18

def self.post(host, port, path, payload = nil)
  request = Net::HTTP::Post.new(path, {"Content-Type" => "application/json"})
  request.body = payload.to_json if payload
  self.do_request(host, port, request)
end

.put(host, port, path, payload = nil) ⇒ Object



29
30
31
32
33
# File 'lib/hackathon_drone/rest.rb', line 29

def self.put(host, port, path, payload = nil)
  request = Net::HTTP::Put.new(path, {"Content-Type" => "application/json"})
  request.body = payload.to_json if payload
  self.do_request(host, port, request)
end