class SimpleJsonapi::Rails::ActionController::RequestValidator

Attributes

params[R]
request[R]

Public Class Methods

new(request, params) click to toggle source
# File lib/simple_jsonapi/rails/action_controller/request_validator.rb, line 9
def initialize(request, params)
  @request = request
  @params = params
end

Public Instance Methods

valid_accept_header?() click to toggle source
# File lib/simple_jsonapi/rails/action_controller/request_validator.rb, line 22
def valid_accept_header?
  request_accept.blank? || request_accept == SimpleJsonapi::MIME_TYPE
end
valid_content_type_header?() click to toggle source
# File lib/simple_jsonapi/rails/action_controller/request_validator.rb, line 14
def valid_content_type_header?
  if request.respond_to?(:media_type)
    !request_has_body? || request_media_type == SimpleJsonapi::MIME_TYPE
  else
    !request_has_body? || request_content_type == SimpleJsonapi::MIME_TYPE
  end
end
valid_relationship_body?() click to toggle source
# File lib/simple_jsonapi/rails/action_controller/request_validator.rb, line 32
def valid_relationship_body?
  request_path.exclude?("relationships") || params["data"]&.is_a?(Array)
end
valid_request_body?() click to toggle source
# File lib/simple_jsonapi/rails/action_controller/request_validator.rb, line 26
def valid_request_body?
  return true unless request_has_body?

  params["data"].present? && valid_relationship_body?
end

Private Instance Methods

request_has_body?() click to toggle source
# File lib/simple_jsonapi/rails/action_controller/request_validator.rb, line 38
def request_has_body?
  request_body.size > 0
end