Class: DirectAdmin::Request
- Inherits:
-
Object
- Object
- DirectAdmin::Request
- Defined in:
- lib/direct_admin/request.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#endpont ⇒ Object
readonly
Returns the value of attribute endpont.
-
#method ⇒ Object
readonly
Returns the value of attribute method.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Instance Method Summary collapse
- #_make_request ⇒ Object
- #_parse_response(response) ⇒ Object
- #call ⇒ Object
-
#initialize(client, method, endpoint, params) ⇒ Request
constructor
A new instance of Request.
Constructor Details
#initialize(client, method, endpoint, params) ⇒ Request
Returns a new instance of Request.
10 11 12 13 14 15 16 |
# 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 |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
8 9 10 |
# File 'lib/direct_admin/request.rb', line 8 def client @client end |
#endpont ⇒ Object (readonly)
Returns the value of attribute endpont.
8 9 10 |
# File 'lib/direct_admin/request.rb', line 8 def endpont @endpont end |
#method ⇒ Object (readonly)
Returns the value of attribute method.
8 9 10 |
# File 'lib/direct_admin/request.rb', line 8 def method @method end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
8 9 10 |
# File 'lib/direct_admin/request.rb', line 8 def params @params end |
#url ⇒ Object (readonly)
Returns the value of attribute url.
8 9 10 |
# File 'lib/direct_admin/request.rb', line 8 def url @url end |
Instance Method Details
#_make_request ⇒ Object
34 35 36 37 |
# 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) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# 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 ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# 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 |