module Angus::Request::JsonParams

Public Instance Methods

get_json_boolean(param, required = true) click to toggle source

Parses a boolean param.

@param [String, Symbol] param Parameter name. @param [Boolean] required When true, raises a MissingParameterError if param does not exist.

@return [Boolean]

# File lib/angus/request/json_params.rb, line 75
def get_json_boolean(param, required = true)
  value = json_body[param.to_sym]


  raise Angus::Exceptions::MissingParameterError.new(param) if required && value.nil?

  value == 'true' || value == true
end
get_json_datetime(param, required = false) click to toggle source

Parses a time param.

@param [String, Symbol] param Parameter name. @param [Boolean] required When true, raises a MissingParameterError if param does not exist.

@raise (see get_json_param) @raise [InvalidValueError] when datetime is not parseable.

@return [Time]

# File lib/angus/request/json_params.rb, line 31
def get_json_datetime(param, required = false)
  value = get_json_param(param, required)
  Time.parse(value)
rescue ArgumentError
  raise Angus::Exceptions::InvalidValueError.new(param, value)
end
get_json_integer(param, required = false) click to toggle source

Parses an integer param.

@param [String, Symbol] param Parameter name. @param [Boolean] required When true, raises a MissingParameterError if param does not exist.

@raise (see get_json_param) @raise [InvalidValueError] when value is not parseable.

@return [Numeric]

# File lib/angus/request/json_params.rb, line 47
def get_json_integer(param, required = false)
  value = get_json_param(param, required)
  Integer(value)
rescue ArgumentError
  raise Angus::Exceptions::InvalidValueError.new(param, value)
end
get_json_param(param, required = false) click to toggle source

Returns the value of a given param.

@param [Symbol] param Param name

@raise [MissingParameterError] when required param not found

@return Param's value

# File lib/angus/request/json_params.rb, line 61
def get_json_param(param, required = false)
  value = json_body[param.to_sym]

  raise Angus::Exceptions::MissingParameterError.new(param) if required && value.blank?

  value
end
json_body() click to toggle source

Returns the json read from the request body.

The keys for the json are symbolized.

@return [Hash] The parsed request body.

@raise [InvalidRequestFormat] When an invalid json is received.

# File lib/angus/request/json_params.rb, line 16
def json_body
  @json_body ||= JSON(request.body.read, :symbolize_names => true)
rescue JSON::ParserError
  raise Angus::Exceptions::InvalidRequestFormat
end