class GraphqlDevise::MountMethod::OperationSanitizer

Public Class Methods

call(default:, only:, skipped:) click to toggle source
# File lib/graphql_devise/mount_method/operation_sanitizer.rb, line 6
def self.call(default:, only:, skipped:)
  new(
    default: default,
    only:    only,
    skipped: skipped
  ).call
end
new(default:, only:, skipped:) click to toggle source
# File lib/graphql_devise/mount_method/operation_sanitizer.rb, line 14
def initialize(default:, only:, skipped:)
  @default = default
  @only    = only
  @skipped = skipped
end

Public Instance Methods

call() click to toggle source
# File lib/graphql_devise/mount_method/operation_sanitizer.rb, line 20
      def call
        operations = if @only.present?
          @default.slice(*@only)
        elsif @skipped.present?
          @default.except(*@skipped)
        else
          @default
        end

        operations.each do |operation, values|
          next if values[:deprecation_reason].blank?

          ActiveSupport::Deprecation.warn(<<-DEPRECATION.strip_heredoc, caller)
              `#{operation}` is deprecated and will be removed in a future version of this gem.
              #{values[:deprecation_reason]}

              You can supress this message by skipping `#{operation}` on your ResourceLoader or the
              mount_graphql_devise_for method on your routes file.
          DEPRECATION
        end
      end