Class: GraphQL::Models::Middleware
- Inherits:
-
Object
- Object
- GraphQL::Models::Middleware
- Defined in:
- lib/graphql/models/middleware.rb
Instance Attribute Summary collapse
-
#skip_nil_models ⇒ Object
Returns the value of attribute skip_nil_models.
Instance Method Summary collapse
- #call(graphql_type, object, field_definition, args, context, next_middleware) ⇒ Object
-
#initialize(skip_nil_models = true) ⇒ Middleware
constructor
A new instance of Middleware.
Constructor Details
#initialize(skip_nil_models = true) ⇒ Middleware
Returns a new instance of Middleware.
4 5 6 |
# File 'lib/graphql/models/middleware.rb', line 4 def initialize(skip_nil_models = true) @skip_nil_models = skip_nil_models end |
Instance Attribute Details
#skip_nil_models ⇒ Object
Returns the value of attribute skip_nil_models.
2 3 4 |
# File 'lib/graphql/models/middleware.rb', line 2 def skip_nil_models @skip_nil_models end |
Instance Method Details
#call(graphql_type, object, field_definition, args, context, next_middleware) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/graphql/models/middleware.rb', line 8 def call(graphql_type, object, field_definition, args, context, next_middleware) # If this field defines a path, load the associations in the path field_info = GraphQL::Models.field_info(graphql_type, field_definition.name) return next_middleware.call unless field_info # Convert the core object into the model base_model = field_info.object_to_base_model.call(object) GraphQL::Models.load_association(base_model, field_info.path, context).then do |model| next nil if model.nil? && @skip_nil_models next_args = [graphql_type, model, field_definition, args, context] next_middleware.call(next_args) end end |