graphql-activerecord 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b316be308228bed3428c853f1758487bfc539c0
|
4
|
+
data.tar.gz: 80ac3b3c800a9917cd5c3cd372f210d28c04bedc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e455b6ea181c3e193c9dbd338a16e010b3022c240e0ec16dda062dc6f8e98ba4cd242843a9e67a5a35cc0c7a5e58b79880c1496e1b5c0c41c1589ba1e5b12ebf
|
7
|
+
data.tar.gz: 27c16e7e09fb531eb9bbf121485a822cb3335142ebc495d6a9637a0784da3588857ded4eabfc6f1fe66359386964dbbeea64a949d1cead293fa688325eaa670d
|
data/lib/graphql/activerecord.rb
CHANGED
@@ -63,9 +63,12 @@ module GraphQL
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def self.define_mutator(definer, model_type, null_behavior:, &block)
|
66
|
+
# HACK: To get the name of the mutation, to avoid possible collisions with other type names
|
67
|
+
prefix = definer.instance_variable_get(:@target).name
|
68
|
+
|
66
69
|
mutator_definition = MutatorDefinition.new(model_type, null_behavior: null_behavior)
|
67
70
|
mutator_definition.field_map.instance_exec(&block)
|
68
|
-
MutationHelpers.print_input_fields(mutator_definition.field_map, definer,
|
71
|
+
MutationHelpers.print_input_fields(mutator_definition.field_map, definer, "#{prefix}Input")
|
69
72
|
mutator_definition
|
70
73
|
end
|
71
74
|
end
|
@@ -13,15 +13,18 @@ module GraphQL::Models
|
|
13
13
|
end
|
14
14
|
|
15
15
|
if field_map.leave_null_unchanged?
|
16
|
-
field_names = field_map.fields.
|
16
|
+
field_names = field_map.fields.select { |f| !f[:required] }.map { |f| f[:name] }
|
17
|
+
field_names += field_map.nested_maps.reject(&:required).map { |m| m.name }
|
17
18
|
field_names = field_names.sort_by { |s| s }
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
unless field_names.empty?
|
21
|
+
enum = GraphQL::EnumType.define do
|
22
|
+
name "#{map_name_prefix}UnsettableFields"
|
23
|
+
field_names.each { |n| value(n, n.titleize, value: n) }
|
24
|
+
end
|
23
25
|
|
24
|
-
|
26
|
+
input_field('unsetFields', types[!enum])
|
27
|
+
end
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
@@ -32,8 +32,8 @@ module GraphQL::Models
|
|
32
32
|
|
33
33
|
def save!
|
34
34
|
fail StandardError.new("Need to call apply_changes before #{__method__}") unless @all_changes
|
35
|
-
|
36
|
-
ActiveRecord::Base.transaction do
|
35
|
+
|
36
|
+
ActiveRecord::Base.transaction(requires_new: true) do
|
37
37
|
changed_models.each do |model|
|
38
38
|
next if model.destroyed?
|
39
39
|
|