module Kodmin::Client
HTTP client of API.
Attributes
kong_url[RW]
Public Instance Methods
delete(path, query_params = {})
click to toggle source
# File lib/kodmin/client.rb, line 53 def delete(path, query_params = {}) uri = uri_of(path, query_params) resp = Net::HTTP.start(uri.host, uri.port, nil, nil, nil, nil, use_ssl: (uri.scheme == 'https')) do |http| req = Net::HTTP::Delete.new(uri.request_uri) set_request_headers(req) http.request(req) end check_and_return(resp) end
get(path, query_params = {})
click to toggle source
# File lib/kodmin/client.rb, line 19 def get(path, query_params = {}) uri = uri_of(path, query_params) resp = Net::HTTP.start(uri.host, uri.port, nil, nil, nil, nil, use_ssl: (uri.scheme == 'https')) do |http| req = Net::HTTP::Get.new(uri.request_uri) set_request_headers(req) http.request(req) end check_and_return(resp) end
post(path, data = {})
click to toggle source
# File lib/kodmin/client.rb, line 29 def post(path, data = {}) uri = uri_of(path) resp = Net::HTTP.start(uri.host, uri.port, nil, nil, nil, nil, use_ssl: (uri.scheme == 'https')) do |http| req = Net::HTTP::Post.new(uri.request_uri) set_request_headers(req) req['Content-Type'] = 'application/json' req.body = data.to_json http.request(req) end check_and_return(resp) end
put(path, data = {})
click to toggle source
# File lib/kodmin/client.rb, line 41 def put(path, data = {}) uri = uri_of(path) resp = Net::HTTP.start(uri.host, uri.port, nil, nil, nil, nil, use_ssl: (uri.scheme == 'https')) do |http| req = Net::HTTP::Put.new(uri.request_uri) set_request_headers(req) req['Content-Type'] = 'application/json' req.body = data.to_json http.request(req) end check_and_return(resp) end
Private Instance Methods
check_and_return(response)
click to toggle source
# File lib/kodmin/client.rb, line 79 def check_and_return(response) if response.is_a?(Net::HTTPSuccess) response.body else raise Error.new(response.code, response.body) end end
set_request_headers(request)
click to toggle source
# File lib/kodmin/client.rb, line 75 def set_request_headers(request) request[:Accept] = 'application/json' end
uri_of(path, query_params = {})
click to toggle source
# File lib/kodmin/client.rb, line 65 def uri_of(path, query_params = {}) url = Client.kong_url + path if query_params.empty? URI(url) else queries = URI.encode_www_form(query_params) url.include?('?') ? URI(url + '&' + queries) : URI(url + '?' + queries) end end