Module: JSONAPI::MimeTypes
- Defined in:
- lib/jsonapi/mime_types.rb
Class Method Summary collapse
Class Method Details
.install ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/jsonapi/mime_types.rb', line 9 def self.install Mime::Type.register JSONAPI::MEDIA_TYPE, :api_json parsers = ActionDispatch::Request.parameter_parsers.merge( Mime::Type.lookup(JSONAPI::MEDIA_TYPE).symbol => parser ) ActionDispatch::Request.parameter_parsers = parsers end |
.parser ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/jsonapi/mime_types.rb', line 18 def self.parser lambda do |body| begin data = JSON.parse(body) if data.is_a?(Hash) data.with_indifferent_access else fail JSONAPI::Exceptions::InvalidRequestFormat.new end rescue JSON::ParserError => e { _parser_exception: JSONAPI::Exceptions::BadRequest.new(e.to_s) } rescue => e { _parser_exception: e } end end end |