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