Module: Kiev::RequestBodyFilter

Defined in:
lib/kiev/request_body_filter.rb,
lib/kiev/request_body_filter/xml.rb,
lib/kiev/request_body_filter/json.rb,
lib/kiev/request_body_filter/default.rb,
lib/kiev/request_body_filter/form_data.rb

Defined Under Namespace

Classes: Default, FormData, Json, Xml

Constant Summary collapse

FILTERED =
"[FILTERED]"
JSON_CONTENT_TYPE =
%w(text/json application/json)
XML_CONTENT_TYPES =
%w(text/xml application/xml)
FORM_DATA_CONTENT_TYPES =
%w(application/x-www-form-urlencoded multipart/form-data)

Class Method Summary collapse

Class Method Details

.filter(content_type, request_body, filtered_params, ignored_params) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/kiev/request_body_filter.rb', line 29

def self.filter(content_type, request_body, filtered_params, ignored_params)
  body = request_body.read
  request_body.rewind

  return body unless Kiev.config.filter_enabled?

  body_filter = for_content_type(content_type)
  body_filter.call(body, filtered_params, ignored_params)
end

.for_content_type(content_type) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/kiev/request_body_filter.rb', line 16

def self.for_content_type(content_type)
  case content_type
  when *JSON_CONTENT_TYPE
    Json
  when *XML_CONTENT_TYPES
    Xml
  when *FORM_DATA_CONTENT_TYPES
    FormData
  else
    Default
  end
end