class Zesty::Request
Attributes
headers[R]
params[R]
request_method[R]
url[R]
Public Class Methods
delete(url, params: {}, headers: {})
click to toggle source
# File lib/zesty/request.rb, line 24 def self.delete(url, params: {}, headers: {}) Request.new(:delete, url, params, headers).perform end
get(url, params: nil, headers: {})
click to toggle source
# File lib/zesty/request.rb, line 8 def self.get(url, params: nil, headers: {}) Request.new(:get, url, params, headers).perform end
new(request_method, url, params, headers)
click to toggle source
# File lib/zesty/request.rb, line 28 def initialize(request_method, url, params, headers) @request_method = request_method @url = url @params = params @headers = headers end
post(url, params: {}, headers: {})
click to toggle source
# File lib/zesty/request.rb, line 16 def self.post(url, params: {}, headers: {}) Request.new(:post, url, params, headers).perform end
post_form(url, params: {}, headers: {})
click to toggle source
# File lib/zesty/request.rb, line 12 def self.post_form(url, params: {}, headers: {}) Request.new(:post_form, url, params, headers).perform end
put(url, params: {}, headers: {})
click to toggle source
# File lib/zesty/request.rb, line 20 def self.put(url, params: {}, headers: {}) Request.new(:put, url, params, headers).perform end
Public Instance Methods
perform()
click to toggle source
# File lib/zesty/request.rb, line 35 def perform response = send(@request_method) process_response(response) end
Private Instance Methods
delete()
click to toggle source
# File lib/zesty/request.rb, line 42 def delete http_client.delete(url, params: params) end
get()
click to toggle source
# File lib/zesty/request.rb, line 46 def get http_client.get(url, body: params) end
http_client()
click to toggle source
# File lib/zesty/request.rb, line 62 def http_client HTTP.headers({ accept: "application/json" }.merge(headers)) end
parse_response_body(body)
click to toggle source
# File lib/zesty/request.rb, line 76 def parse_response_body(body) return nil if body.strip.empty? JSON.parse(body, symbolize_names: true)&.to_snake_case rescue JSON::ParserError end
post()
click to toggle source
# File lib/zesty/request.rb, line 54 def post http_client.post(url, json: params) end
post_form()
click to toggle source
# File lib/zesty/request.rb, line 50 def post_form http_client.post(url, form: params.transform_values { |v| HTTP::FormData::Part.new(v) }) end
process_response(response)
click to toggle source
# File lib/zesty/request.rb, line 66 def process_response(response) data = parse_response_body(response.to_s) if response.status.success? data else raise Error.from_response(data, response) end end
put()
click to toggle source
# File lib/zesty/request.rb, line 58 def put http_client.put(url, json: params) end