module Graphoid::Inputs
Constants
- LIST
Public Class Methods
generate(model)
click to toggle source
# File lib/graphoid/definitions/inputs.rb, line 8 def generate(model) LIST[model] ||= GraphQL::InputObjectType.define do name = Utils.graphqlize(model.name) name("#{name}Input") description("Generated model input for #{name}") Attribute.fields_of(model).each do |field| next if field.name.start_with?('_') type = Graphoid::Mapper.convert(field) name = Utils.camelize(field.name) argument(name, type) end Relation.relations_of(model).each do |name, relation| relation_class = relation.class_name.safe_constantize next unless relation_class relation_input = LIST[relation_class] next unless relation_input name = Utils.camelize(relation.name) r = Relation.new(relation) if r.many? argument(name, -> { types[relation_input] }) else argument(name, -> { relation_input }) end end end end