class DirectAdmin::Request
Attributes
client[R]
endpont[R]
method[R]
params[R]
url[R]
Public Class Methods
new(client, method, endpoint, params)
click to toggle source
# File lib/direct_admin/request.rb, line 10 def initialize(client, method, endpoint, params) @client = client @method = method @endpoint = endpoint @params = params @url = URI.join(client.server_url, endpoint).to_s if client end
Public Instance Methods
_make_request()
click to toggle source
# File lib/direct_admin/request.rb, line 34 def _make_request HTTP.basic_auth(user: client.server_username, pass: client.server_password) .public_send(method, url, form: params) end
_parse_response(response)
click to toggle source
# File lib/direct_admin/request.rb, line 39 def _parse_response(response) CGI.parse(response).reduce({}) do |memo, (key, value)| if value.is_a?(Array) && value.length == 1 memo[key] = value.first else memo[key] = value end memo end end
call()
click to toggle source
# File lib/direct_admin/request.rb, line 18 def call response = _make_request if response.status == 404 raise DirectAdmin::Error, "Invalid URL: #{url}" end parsed_body = _parse_response(response.to_s) unless response.code == 200 raise DirectAdmin::Error, parsed_body["reason"] end parsed_body end