module Slots::JWT::TypeHelper

Public Class Methods

included(mod) click to toggle source
# File lib/slots/jwt/type_helper.rb, line 6
def self.included(mod)
  mod.module_eval do
    def initialize(*args, required_permission: nil, **kwargs, &block)
      required_permission(required_permission)
      # Pass on the default args:
      super(*args, **kwargs, &block)
    end
  end
end
new(*args, required_permission: nil, **kwargs, &block) click to toggle source
Calls superclass method
# File lib/slots/jwt/type_helper.rb, line 8
def initialize(*args, required_permission: nil, **kwargs, &block)
  required_permission(required_permission)
  # Pass on the default args:
  super(*args, **kwargs, &block)
end

Public Instance Methods

required_permission(permission_level) click to toggle source

Call this method in an Object class to set the permission level:

# File lib/slots/jwt/type_helper.rb, line 16
def required_permission(permission_level)
  @_required_permission = permission_level
end
to_graphql() click to toggle source

This method is overridden to customize object types:

Calls superclass method
# File lib/slots/jwt/type_helper.rb, line 21
def to_graphql
  type_defn = super # returns a GraphQL::ObjectType
  # Get a configured value and assign it to metadata
  type_defn.metadata[:has_required_permission] = true
  type_defn.metadata[:required_permission] = @_required_permission
  type_defn
end