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