6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/hq/graphql/resource/mutation.rb', line 6
def self.build(model_name, graphql_name:, require_primary_key: false, &block)
Class.new(::HQ::GraphQL::Mutation) do
graphql_name graphql_name
lazy_load do
field :errors, ::HQ::GraphQL::Types::Object, null: false
field :resource, ::HQ::GraphQL::Types[model_name], null: true
end
instance_eval(&block)
if require_primary_key
lazy_load do
klass = model_name.constantize
primary_key = klass.primary_key
pk_column = klass.columns.detect { |c| c.name == primary_key.to_s }
argument primary_key, ::HQ::GraphQL::Types.type_from_column(pk_column), required: true
end
end
def errors_from_resource(resource)
resource.errors.to_h.deep_transform_keys { |k| k.to_s.camelize(:lower) }
end
end
end
|