class Cuprum::Rails::Request
Wraps a web request with a generic interface.
Constants
- FILTERED_HEADER_PREFIXES
- FILTERED_PARAMS
Attributes
@return [Hash<String, Object>] The parameters from the request body.
@return [Hash<String, Object>] The parameters from the request body.
@return [Symbol] the request format, e.g. :html or :json.
@return [Hash<String, String>] the request headers.
@return [Symbol] the HTTP method used for the request.
@return [Hash<String, Object>] The merged GET and POST parameters.
@return [Hash<String, Object>] The merged GET and POST parameters.
@return [String] the relative path of the request, including params.
@return [Hash<String, Object>] the query parameters.
@return [Hash<String, Object>] the query parameters.
Public Class Methods
Generates a Request
from a native Rails
request.
@param request [] The native request to build.
@return [Cuprum::Rails::Request] the generated request.
# File lib/cuprum/rails/request.rb, line 24 def build(request:) new( authorization: request.authorization, body_params: request.request_parameters, format: request.format.symbol, headers: filter_headers(request.headers), method: request.request_method_symbol, params: filter_params(request.params), path: request.fullpath, query_params: request.query_parameters ) end
@param authorization [String, nil] The authorization header, if any. @param body_params
[Hash<String, Object>] The parameters from the request
body.
@param format [Symbol] The request format, e.g. :html or :json. @param headers [Hash<String, String>] The request headers. @param method [Symbol] The HTTP method used for the request. @param params [Hash<String, Object>] The merged GET and POST parameters. @param query_params
[Hash<String, Object>] The query parameters.
# File lib/cuprum/rails/request.rb, line 58 def initialize( # rubocop:disable Metrics/ParameterLists body_params:, format:, headers:, method:, params:, path:, query_params:, authorization: nil ) @authorization = authorization @body_params = body_params @format = format @headers = headers @method = method @path = path @params = params @query_params = query_params end
Private Class Methods
# File lib/cuprum/rails/request.rb, line 39 def filter_headers(headers) headers.reject do |key, _| FILTERED_HEADER_PREFIXES.any? { |prefix| key.start_with?(prefix) } end end
# File lib/cuprum/rails/request.rb, line 45 def filter_params(params) params.reject { |key, _| FILTERED_PARAMS.include?(key) } end