Sha256: 913deef382b663f296964aaa131888e7c25db167d8b7dbe92c5b315dd2daa5c7
Contents?: true
Size: 893 Bytes
Versions: 1
Compression:
Stored size: 893 Bytes
Contents
# frozen_string_literal: true require 'json' module JSONAPI MEDIA_TYPE = 'application/vnd.api+json' module MimeTypes 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 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 end MimeTypes.install end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jsonapi-resources-0.11.0.beta2 | lib/jsonapi/mime_types.rb |