Class: GraphqlDevise::SchemaPlugin
- Inherits:
-
Object
- Object
- GraphqlDevise::SchemaPlugin
- Defined in:
- lib/graphql_devise/schema_plugin.rb
Constant Summary collapse
- DEFAULT_NOT_AUTHENTICATED =
->(field) { raise GraphqlDevise::AuthenticationError, "#{field} field requires authentication" }
Instance Method Summary collapse
-
#initialize(query: nil, mutation: nil, authenticate_default: true, resource_loaders: [], unauthenticated_proc: DEFAULT_NOT_AUTHENTICATED) ⇒ SchemaPlugin
constructor
A new instance of SchemaPlugin.
- #trace(event, trace_data) ⇒ Object
- #use(schema_definition) ⇒ Object
Constructor Details
#initialize(query: nil, mutation: nil, authenticate_default: true, resource_loaders: [], unauthenticated_proc: DEFAULT_NOT_AUTHENTICATED) ⇒ SchemaPlugin
Returns a new instance of SchemaPlugin.
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/graphql_devise/schema_plugin.rb', line 7 def initialize(query: nil, mutation: nil, authenticate_default: true, resource_loaders: [], unauthenticated_proc: DEFAULT_NOT_AUTHENTICATED) @query = query @mutation = mutation @resource_loaders = resource_loaders @authenticate_default = authenticate_default @unauthenticated_proc = unauthenticated_proc # Must happen on initialize so operations are loaded before the types are added to the schema on GQL < 1.10 load_fields reconfigure_warden! end |
Instance Method Details
#trace(event, trace_data) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/graphql_devise/schema_plugin.rb', line 23 def trace(event, trace_data) # Authenticate only root level queries return yield unless event == 'execute_field' && path(trace_data).count == 1 field = traced_field(trace_data) auth_required = authenticate_option(field, trace_data) context = context_from_data(trace_data) if auth_required context = set_current_resource(context) raise_on_missing_resource(context, field) end yield end |
#use(schema_definition) ⇒ Object
19 20 21 |
# File 'lib/graphql_devise/schema_plugin.rb', line 19 def use(schema_definition) schema_definition.tracer(self) end |