module Trav3::REST

@private

Public Class Methods

create(travis, url, data) click to toggle source
# File lib/trav3/rest.rb, line 12
def create(travis, url, data)
  uri = as_uri url
  req = request_post uri
  set_headers travis, req
  set_json_body req, data
  response = get_response uri, req

  output travis, response
end
delete(travis, url) click to toggle source
# File lib/trav3/rest.rb, line 22
def delete(travis, url)
  uri = as_uri url
  req = request_delete uri
  set_headers travis, req
  response = get_response uri, req

  output travis, response
end
get(travis, url, raw_reply = false) click to toggle source
# File lib/trav3/rest.rb, line 31
def get(travis, url, raw_reply = false)
  uri = as_uri url
  req = request_get uri
  set_headers travis, req
  response = get_response uri, req

  return response.body if raw_reply

  output travis, response
end
patch(travis, url, data = {}) click to toggle source
# File lib/trav3/rest.rb, line 42
def patch(travis, url, data = {})
  uri = as_uri url
  req = request_patch uri
  set_headers travis, req
  set_json_body req, data
  response = get_response uri, req

  output travis, response
end
post(travis, url, body = nil) click to toggle source
# File lib/trav3/rest.rb, line 52
def post(travis, url, body = nil)
  uri = as_uri url
  req = request_post uri
  set_headers travis, req
  req.body = body if body
  response = get_response uri, req

  output travis, response
end

Private Class Methods

as_uri(url) click to toggle source
# File lib/trav3/rest.rb, line 64
def as_uri(url)
  URI( url )
end
get_response(uri, request) click to toggle source
# File lib/trav3/rest.rb, line 68
def get_response(uri, request)
  http = HTTP.new(uri.host, uri.port)
  http.use_ssl = (uri.scheme == 'https')
  http.request(request)
end
output(travis, response) click to toggle source
# File lib/trav3/rest.rb, line 74
def output(travis, response)
  if [HTTPAccepted, HTTPOK, HTTPCreated, HTTPNoContent].include? response.code_type
    Success.new(travis, response)
  else
    RequestError.new(travis, response)
  end
end
request_delete(uri) click to toggle source
# File lib/trav3/rest.rb, line 82
def request_delete(uri)
  HTTP::Delete.new(uri.request_uri)
end
request_get(uri) click to toggle source
# File lib/trav3/rest.rb, line 86
def request_get(uri)
  HTTP::Get.new(uri.request_uri)
end
request_patch(uri) click to toggle source
# File lib/trav3/rest.rb, line 90
def request_patch(uri)
  HTTP::Patch.new(uri.request_uri)
end
request_post(uri) click to toggle source
# File lib/trav3/rest.rb, line 94
def request_post(uri)
  HTTP::Post.new(uri.request_uri)
end
set_headers(travis, request) click to toggle source
# File lib/trav3/rest.rb, line 98
def set_headers(travis, request)
  travis.headers.each_pair do |header, value|
    request[header] = value
  end
end
set_json_body(req, data = {}) click to toggle source
# File lib/trav3/rest.rb, line 104
def set_json_body(req, data = {})
  req.body = JSON.generate(data) unless data.empty?
end