module GraphQL::Sugar::Define::Attribute

Public Class Methods

call(type_defn, field_name, type_or_field = nil, desc = nil, **kwargs, &block) click to toggle source
# File lib/graphql/sugar/define/attribute.rb, line 5
def self.call(type_defn, field_name, type_or_field = nil, desc = nil, **kwargs, &block) # rubocop:disable Metrics/ParameterLists
  model_class = Sugar.get_model_class(type_defn)
  column_name = Sugar.get_column_name(field_name)

  type_or_field ||= kwargs[:type] if !kwargs[:type].nil?
  type_or_field ||= Sugar.get_graphql_type(model_class, column_name)

  kwargs[:property] ||= column_name.to_sym if kwargs[:resolve].nil?

  GraphQL::Define::AssignObjectField.call(type_defn, field_name, type_or_field, desc, **kwargs, &block)
end