Class: Conify::Api::AbstractApi

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/conify/api/abstract_api.rb

Overview

Used to make requests to the Conflux API

Direct Known Subclasses

Addons, Users

Instance Method Summary collapse

Methods included from Helpers

#allow_user_response, #ask_for_conflux_creds, #ask_for_password, #ask_for_password_on_windows, #camelize, #display, #echo_off, #echo_on, #error, #exclusive_deep_merge, #format_with_bang, #host, #host_url, #kensa_manifest_name, #kensa_manifest_path, #manifest_content, #manifest_filename, #manifest_path, #manually_added_methods, #open_url, #running_on_a_mac?, #running_on_windows?, #site_url, #to_table, #with_tty

Instance Method Details

#add_headers(request, headers = {}) ⇒ Object



61
62
63
# File 'lib/conify/api/abstract_api.rb', line 61

def add_headers(request, headers = {})
  headers.each { |key, val| request.add_field(key, val) }
end

#delete(route, data: {}, headers: {}, error_message: 'Error making request', show_err_response: false) ⇒ Object



24
25
26
# File 'lib/conify/api/abstract_api.rb', line 24

def delete(route, data: {}, headers: {}, error_message: 'Error making request', show_err_response: false)
  form_request(Net::HTTP::Delete, route, data, headers, error_message, show_err_response)
end

#form_request(net_obj, route, data, headers, error_message, show_err_response) ⇒ Object



43
44
45
46
47
48
49
50
# File 'lib/conify/api/abstract_api.rb', line 43

def form_request(net_obj, route, data, headers, error_message, show_err_response)
  route = data.empty? ? route : "#{route}?#{URI.encode_www_form(data)}"
  request = net_obj.new("/api#{route}")
  request.add_field('Content-Type', 'application/x-www-form-urlencoded')
  add_headers(request, headers)
  response = http.request(request)
  handle_json_response(response, error_message, show_err_response)
end

#get(route, data: {}, headers: {}, error_message: 'Error making request', show_err_response: false) ⇒ Object



12
13
14
# File 'lib/conify/api/abstract_api.rb', line 12

def get(route, data: {}, headers: {}, error_message: 'Error making request', show_err_response: false)
  form_request(Net::HTTP::Get, route, data, headers, error_message, show_err_response)
end

#handle_json_response(response, error_message, show_err_response) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/conify/api/abstract_api.rb', line 65

def handle_json_response(response, error_message, show_err_response)
  if response.code.to_i == 200
    JSON.parse(response.body) rescue {}
  else
    if show_err_response
      json_err = JSON.parse(response.body) rescue {}
      error json_err['message'] || response.body
    else
      error error_message
    end
  end
end

#httpObject



35
36
37
38
39
40
41
# File 'lib/conify/api/abstract_api.rb', line 35

def http
  uri = URI.parse(host_url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri.scheme == 'https'
  ssl_check_win(http)
  http
end

#json_request(net_obj, route, data, headers, error_message, show_err_response) ⇒ Object



52
53
54
55
56
57
58
59
# File 'lib/conify/api/abstract_api.rb', line 52

def json_request(net_obj, route, data, headers, error_message, show_err_response)
  request = net_obj.new("/api#{route}")
  request.add_field('Content-Type', 'application/json')
  add_headers(request, headers)
  request.body = data.to_json
  response = http.request(request)
  handle_json_response(response, error_message, show_err_response)
end

#post(route, data: {}, headers: {}, error_message: 'Error making request', show_err_response: false) ⇒ Object



16
17
18
# File 'lib/conify/api/abstract_api.rb', line 16

def post(route, data: {}, headers: {}, error_message: 'Error making request', show_err_response: false)
  json_request(Net::HTTP::Post, route, data, headers, error_message, show_err_response)
end

#put(route, data: {}, headers: {}, error_message: 'Error making request', show_err_response: false) ⇒ Object



20
21
22
# File 'lib/conify/api/abstract_api.rb', line 20

def put(route, data: {}, headers: {}, error_message: 'Error making request', show_err_response: false)
  json_request(Net::HTTP::Put, route, data, headers, error_message, show_err_response)
end

#ssl_check_win(net_http) ⇒ Object



28
29
30
31
32
33
# File 'lib/conify/api/abstract_api.rb', line 28

def ssl_check_win(net_http)
  case RUBY_PLATFORM
    when /win/i, /ming/i
      net_http.verify_mode = OpenSSL::SSL::VERIFY_NONE if net_http.use_ssl?
  end
end