class Shaf::Parser::Json

Public Class Methods

can_handle?(request) click to toggle source
# File lib/shaf/parser/json.rb, line 7
def self.can_handle?(request)
  request.content_type&.match? %r{application/(.*\+)?json}
end

Public Instance Methods

call() click to toggle source
# File lib/shaf/parser/json.rb, line 11
def call
  @payload ||= parse_json
end

Private Instance Methods

parse_json() click to toggle source
# File lib/shaf/parser/json.rb, line 17
def parse_json
  return {} if body.empty?

  JSON.parse(body, symbolize_names: true)
rescue JSON::ParserError => e
  raise Error, e.message
end