lib/jsonapi_compliable/deserializer.rb in jsonapi_compliable-0.11.30 vs lib/jsonapi_compliable/deserializer.rb in jsonapi_compliable-0.11.31

- old
+ new

@@ -46,17 +46,26 @@ # { type: 'authors', method: :create, temp_id: 'abc123' } class JsonapiCompliable::Deserializer # @param payload [Hash] The incoming payload with symbolized keys # @param env [Hash] the Rack env (e.g. +request.env+). def initialize(payload, env) - @payload = payload + @payload = payload || {} @payload = @payload[:_jsonapi] if @payload.has_key?(:_jsonapi) @env = env + validate_content_type end + # checks Content-Type header and prints a warning if it doesn't seem correct + def validate_content_type + content_type = @env['CONTENT_TYPE'] || "" + if !(content_type.include?("application/json") || content_type.include?("application/vnd.api+json")) + print("WARNING - JSONAPI Compliable :: Content-Type header appears to be set to an invalid value: #{content_type}\n") + end + end + # @return [Hash] the raw :data value of the payload def data - @payload[:data] + @payload[:data] || {} end # @return [String] the raw :id value of the payload def id data[:id]