Module: Watchdocs::Rails::Helpers::BodyHelper

Included in:
Middleware
Defined in:
lib/watchdocs/rails/helpers/body_helper.rb

Instance Method Summary collapse

Instance Method Details

#body_string(body) ⇒ Object


5
6
7
8
9
# File 'lib/watchdocs/rails/helpers/body_helper.rb', line 5

def body_string(body)
  body_string = ''
  body.each { |line| body_string += line } if body
  body_string
end

#log_and_return_empty(error) ⇒ Object


31
32
33
34
# File 'lib/watchdocs/rails/helpers/body_helper.rb', line 31

def log_and_return_empty(error)
  $stderr.puts "Watchdocs Middleware Error: #{error}"
  {}
end

#parse_request_body(body) ⇒ Object


20
21
22
23
24
25
26
27
28
29
# File 'lib/watchdocs/rails/helpers/body_helper.rb', line 20

def parse_request_body(body)
  return if body.empty?
  filter_data(JSON.parse(body))
rescue JSON::ParserError
  begin
    filter_data(Rack::Utils.parse_nested_query(body))
  rescue StandardError
    log_and_return_empty "Request body format not supported. Body: #{body}"
  end
end

#parse_response_body(body) ⇒ Object


11
12
13
14
15
16
17
18
# File 'lib/watchdocs/rails/helpers/body_helper.rb', line 11

def parse_response_body(body)
  return if body.empty?
  filter_data(JSON.parse(body))
rescue JSON::ParserError => e
  log_and_return_empty "Invalid JSON data: #{e.message}, Body: #{body}"
rescue StandardError
  log_and_return_empty "Response body format not supported. Body: #{body}"
end