class MoonropeClient::Request
Attributes
params[R]
Public Class Methods
new(connection, controller, action, params = {})
click to toggle source
Initialize a new request
@param connection [MoonropeClient::Connection] @param controller [Symbol] @param action [Symbol] @param params [Hash]
# File lib/moonrope_client/request.rb, line 14 def initialize(connection, controller, action, params = {}) @connection = connection @controller = controller.to_sym @action = action.to_sym @params = params end
Public Instance Methods
make()
click to toggle source
# File lib/moonrope_client/request.rb, line 23 def make raw_data_to_response_object(make_request) end
make!()
click to toggle source
# File lib/moonrope_client/request.rb, line 27 def make! result = raw_data_to_response_object(make_request) if result.success? result else raise MoonropeClient::RequestError.new(result), "Request was not successful. Got #{result.class} (#{result.exception_message})." end end
Private Instance Methods
make_request()
click to toggle source
# File lib/moonrope_client/request.rb, line 38 def make_request params = {:params => @params.to_json} path = "/#{@connection.path_prefix}/v#{@connection.version}/#{@controller}/#{@action}" JSON.parse(@connection.raw_request(path, params)) end
raw_data_to_response_object(data)
click to toggle source
Convert rhe result of a request into an appropriate response object
# File lib/moonrope_client/request.rb, line 47 def raw_data_to_response_object(data) case data['status'] when 'success' if data['flags']['paginated'] && data['data'].is_a?(Array) MoonropeClient::Responses::PaginatedCollection.new(self, data) else MoonropeClient::Responses::Success.new(self, data) end when 'parameter-error' then MoonropeClient::Responses::ParameterError.new(self, data) when 'access-denied' then MoonropeClient::Responses::AccessDenied.new(self, data) when 'validation-error' then MoonropeClient::Responses::ValidationError.new(self, data) else MoonropeClient::Response.new(self, data) end end