Class: ActionPolicy::GraphQL::AuthorizedField::AuthorizeFieldExtension

Inherits:
Extension
  • Object
show all
Defined in:
lib/action_policy/graphql/authorized_field.rb

Instance Method Summary collapse

Methods inherited from Extension

#extract_option

Instance Method Details

#applyObject



95
96
97
98
# File 'lib/action_policy/graphql/authorized_field.rb', line 95

def apply
  @to = extract_option(:to) { underscored_field_name }
  @raise = extract_option(:raise) { ::ActionPolicy::GraphQL.authorize_raise_exception }
end

#resolve(context:, object:, arguments:, **_rest) ⇒ Object



100
101
102
103
104
105
106
107
# File 'lib/action_policy/graphql/authorized_field.rb', line 100

def resolve(context:, object:, arguments:, **_rest)
  if @raise
    object.authorize! object.object, to: @to, **options
    yield object, arguments
  elsif object.allowed_to?(@to, object.object, **options)
    yield object, arguments
  end
end