Module: InfinumJsonApiSetup::JsonApi::ContentNegotiation

Extended by:
ActiveSupport::Concern
Defined in:
lib/infinum_json_api_setup/json_api/content_negotiation.rb

Instance Method Summary collapse

Instance Method Details

#acceptable?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/infinum_json_api_setup/json_api/content_negotiation.rb', line 24

def acceptable?
  request.accept&.split(',')&.include?(Mime.fetch(:json_api))
end

#valid_content_type?Boolean

Returns:

  • (Boolean)


18
19
20
21
22
# File 'lib/infinum_json_api_setup/json_api/content_negotiation.rb', line 18

def valid_content_type?
  return true if request.body.size.zero?

  request.content_type == Mime.fetch(:json_api)
end

#validate_jsonapi_requestObject



10
11
12
13
14
15
16
# File 'lib/infinum_json_api_setup/json_api/content_negotiation.rb', line 10

def validate_jsonapi_request
  if !acceptable?
    head :not_acceptable
  elsif !valid_content_type?
    head :unsupported_media_type
  end
end