module JSONAPI::Realizer::Controller

Private Instance Methods

reject_invalid_content_type_header() click to toggle source
# File lib/jsonapi/realizer/controller.rb, line 11
        def reject_invalid_content_type_header
  reject_missing_content_type_header

  return if request.headers.fetch("Content-Type").include?(JSONAPI::MEDIA_TYPE)

  raise(JSONAPI::Realizer.configuration.default_invalid_content_type_exception)
end
reject_invalid_root_property() click to toggle source
# File lib/jsonapi/realizer/controller.rb, line 27
        def reject_invalid_root_property
  reject_missing_root_property

  return unless request.parameters.key?("data") && (request.parameters.fetch("data").is_a?(Hash) || request.parameters.fetch("data").is_a?(Array))
  return unless request.parameters.key?("errors") && request.parameters.fetch("errors").is_a?(Array)

  raise(Error::InvalidRootProperty)
end
reject_invalid_type_property() click to toggle source
# File lib/jsonapi/realizer/controller.rb, line 45
        def reject_invalid_type_property
  reject_missing_type_property

  return if request.parameters.fetch("data").is_a?(Hash) && request.parameters.fetch("data").fetch("type").is_a?(String) && request.parameters.fetch("data").fetch("type").present?
  return if request.parameters.fetch("data").is_a?(Array) && request.parameters.fetch("data").map {|data| data.fetch("type")}.all? {|type| type.is_a?(String) && type.present? }

  raise(Error::InvalidDataTypeProperty)
end
reject_missing_content_type_header() click to toggle source
# File lib/jsonapi/realizer/controller.rb, line 4
        def reject_missing_content_type_header
  return if request.body.size.zero?
  return if request.headers.property?("Content-Type")

  raise(JSONAPI::Realizer.configuration.default_missing_content_type_exception)
end
reject_missing_root_property() click to toggle source
# File lib/jsonapi/realizer/controller.rb, line 19
        def reject_missing_root_property
  return if request.parameters.key?("body")
  return if request.paremters.key?("errors")
  return if request.paremters.key?("meta")

  raise(Error::MissingRootProperty)
end
reject_missing_type_property() click to toggle source
# File lib/jsonapi/realizer/controller.rb, line 36
        def reject_missing_type_property
  reject_invalid_root_property

  return if request.parameters.fetch("data").is_a?(Hash) && request.parameters.fetch("data").key?("type")
  return if request.parameters.fetch("data").is_a?(Array) && request.parameters.fetch("data").all? { |data| data.key?("type") }

  raise(Error::MissingDataTypeProperty)
end