Module: MarbleApiClient::Responses

Defined in:
lib/marble_api_client/responses.rb,
lib/marble_api_client/responses/list.rb,
lib/marble_api_client/responses/record.rb,
lib/marble_api_client/responses/success.rb,
lib/marble_api_client/responses/forbidden.rb,
lib/marble_api_client/responses/not_found.rb,
lib/marble_api_client/responses/bad_request.rb,
lib/marble_api_client/responses/client_error.rb,
lib/marble_api_client/responses/http_methods.rb,
lib/marble_api_client/responses/server_error.rb,
lib/marble_api_client/responses/unauthorized.rb,
lib/marble_api_client/responses/body_attributes.rb,
lib/marble_api_client/responses/not_implemented.rb,
lib/marble_api_client/responses/unprocessable_entity.rb

Overview

Module for getting response objects

Defined Under Namespace

Modules: BodyAttributes, HttpMethods Classes: BadRequest, ClientError, Forbidden, List, NotFound, NotImplemented, Record, ServerError, Success, Unauthorized, UnprocessableEntity

Constant Summary collapse

INDEX_ACTION =
'index'
CREATE_ACTION =
'create'
SUCCESS_RESPONSE_CODE =
'200'
BAD_REQUEST_RESPONSE_CODE =
'400'
UNAUTHORIZED_RESPONSE_CODE =
'401'
FORBIDDEN_RESPONSE_CODE =
'403'
NOT_FOUND_RESPONSE_CODE =
'404'
UNPROCESSABLE_ENTITY_RESPONSE_CODE =
'422'
SERVER_ERROR_RESPONSE_CODE =
'500'
NOT_IMPLEMENTED_RESPONSE_CODE =
'501'
RESPONSES =
[
  {
    code: SUCCESS_RESPONSE_CODE,
    class_constant: Success
  },
  {
    code: SUCCESS_RESPONSE_CODE,
    action: INDEX_ACTION,
    class_constant: List
  },
  {
    code: SUCCESS_RESPONSE_CODE,
    action: CREATE_ACTION,
    class_constant: Record
  },
  {
    code: BAD_REQUEST_RESPONSE_CODE,
    class_constant: BadRequest
  },
  {
    code: UNAUTHORIZED_RESPONSE_CODE,
    class_constant: Unauthorized
  },
  {
    code: FORBIDDEN_RESPONSE_CODE,
    class_constant: Forbidden
  },
  {
    code: NOT_FOUND_RESPONSE_CODE,
    class_constant: NotFound
  },
  {
    code: UNPROCESSABLE_ENTITY_RESPONSE_CODE,
    class_constant: UnprocessableEntity
  },
  {
    code: SERVER_ERROR_RESPONSE_CODE,
    class_constant: ServerError
  },
  {
    code: NOT_IMPLEMENTED_RESPONSE_CODE,
    class_constant: NotImplemented
  }
].freeze

Class Method Summary collapse

Class Method Details

.parse_response(response, action) ⇒ Object

Raises:

  • (ArgumentError)


80
81
82
83
84
# File 'lib/marble_api_client/responses.rb', line 80

def parse_response(response, action)
  raise ArgumentError, 'HTTPResponse required' unless response.is_a?(Net::HTTPResponse)

  find_object(response, action)[:class_constant].new(response)
end