graphql-rails-api 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/graphql/hydrate_query.rb +26 -27
- data/lib/graphql/rails/api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfe867c4f64d230748b3d8a9d1aece95a16c6692d96491fd67298ad522ddd5ce
|
4
|
+
data.tar.gz: 0a407e15eff08e02e8a202da0d47d3fe6116af42eb591421e3b5a914964f7a48
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e508676774b519da77b95483e1a0d28a91e1843925dc1669f674cb958d911ada161968923a385d86af51b86d47af56baecff3fe5a959cb1b727aed556834df6c
|
7
|
+
data.tar.gz: 3e1aefb503057898ba28eb3008fd2e8b4c63f792fd530ac0a3bcfdf8754ed168a5b5f7f6c1dbaf76f96961494bd03da7f905fc57ba19ccaabd26af1eb8dddffc
|
@@ -40,7 +40,7 @@ module Graphql
|
|
40
40
|
transform_filter if @filter.present?
|
41
41
|
transform_order if @order_by.present?
|
42
42
|
|
43
|
-
@total = @model.
|
43
|
+
@total = @model.count
|
44
44
|
@model = @model.limit(@per_page)
|
45
45
|
@model = @model.offset(@per_page * (@page - 1))
|
46
46
|
|
@@ -48,7 +48,7 @@ module Graphql
|
|
48
48
|
data: deep_pluck_to_structs(@context&.irep_node&.typed_children&.values&.first.try(:[], "data")),
|
49
49
|
total_count: @total,
|
50
50
|
per_page: @per_page,
|
51
|
-
page: @page
|
51
|
+
page: @page
|
52
52
|
)
|
53
53
|
end
|
54
54
|
|
@@ -72,10 +72,10 @@ module Graphql
|
|
72
72
|
ordered_field = "#{model_name.pluralize}.#{column}"
|
73
73
|
end
|
74
74
|
|
75
|
-
if %i[string text].include?(field_type)
|
76
|
-
@model
|
75
|
+
@model = if %i[string text].include?(field_type)
|
76
|
+
@model.order(Arel.sql("upper(#{ordered_field}) #{sign}"))
|
77
77
|
else
|
78
|
-
@model
|
78
|
+
@model.order(Arel.sql("#{ordered_field} #{sign}"))
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
@@ -93,33 +93,32 @@ module Graphql
|
|
93
93
|
if @need_distinct_results
|
94
94
|
@model = @model.distinct
|
95
95
|
end
|
96
|
-
|
97
96
|
rescue RKelly::SyntaxError => e
|
98
97
|
raise GraphQL::ExecutionError, "Invalid filter: #{e.message}"
|
99
98
|
end
|
100
99
|
|
101
100
|
def handle_node(node, model)
|
102
|
-
if node.
|
101
|
+
if node.instance_of?(RKelly::Nodes::ParentheticalNode)
|
103
102
|
handle_ParentheticalNode(node, model)
|
104
|
-
elsif node.
|
103
|
+
elsif node.instance_of?(RKelly::Nodes::LogicalAndNode)
|
105
104
|
handle_LogicalAndNode(node, model)
|
106
|
-
elsif node.
|
105
|
+
elsif node.instance_of?(RKelly::Nodes::LogicalOrNode)
|
107
106
|
handle_LogicalOrNode(node, model)
|
108
|
-
elsif node.
|
107
|
+
elsif node.instance_of?(RKelly::Nodes::NotEqualNode)
|
109
108
|
handle_NotEqualNode(node, model)
|
110
|
-
elsif node.
|
109
|
+
elsif node.instance_of?(RKelly::Nodes::EqualNode)
|
111
110
|
handle_EqualNode(node, model)
|
112
|
-
elsif node.
|
111
|
+
elsif node.instance_of?(RKelly::Nodes::StrictEqualNode)
|
113
112
|
handle_StrictEqualNode(node, model)
|
114
|
-
elsif node.
|
113
|
+
elsif node.instance_of?(RKelly::Nodes::NotStrictEqualNode)
|
115
114
|
handle_NotStrictEqualNode(node, model)
|
116
|
-
elsif node.
|
115
|
+
elsif node.instance_of?(RKelly::Nodes::GreaterOrEqualNode)
|
117
116
|
handle_GreaterOrEqualNode(node, model)
|
118
|
-
elsif node.
|
117
|
+
elsif node.instance_of?(RKelly::Nodes::LessOrEqualNode)
|
119
118
|
handle_LessOrEqualNode(node, model)
|
120
|
-
elsif node.
|
119
|
+
elsif node.instance_of?(RKelly::Nodes::LessNode)
|
121
120
|
handle_LessNode(node, model)
|
122
|
-
elsif node.
|
121
|
+
elsif node.instance_of?(RKelly::Nodes::GreaterNode)
|
123
122
|
handle_GreaterNode(node, model)
|
124
123
|
else
|
125
124
|
raise GraphQL::ExecutionError, "Invalid filter: #{node.class} unknown operator"
|
@@ -162,9 +161,9 @@ module Graphql
|
|
162
161
|
end
|
163
162
|
|
164
163
|
def handle_operator_node(node, model)
|
165
|
-
if node.left.
|
164
|
+
if node.left.instance_of?(RKelly::Nodes::DotAccessorNode)
|
166
165
|
handle_dot_accessor_node(node, model)
|
167
|
-
elsif node.left.
|
166
|
+
elsif node.left.instance_of?(RKelly::Nodes::ResolveNode)
|
168
167
|
handle_resolve_node(node, model)
|
169
168
|
else
|
170
169
|
raise GraphQL::ExecutionError, "Invalid left value: #{node.left.class}"
|
@@ -172,7 +171,7 @@ module Graphql
|
|
172
171
|
end
|
173
172
|
|
174
173
|
def value_from_node(node, sym_type, sym, model)
|
175
|
-
if node.
|
174
|
+
if node.instance_of?(RKelly::Nodes::StringNode)
|
176
175
|
val = node.value.gsub(/^'|'$|^"|"$/, "")
|
177
176
|
if sym_type == :datetime
|
178
177
|
DateTime.parse(val)
|
@@ -190,13 +189,13 @@ module Graphql
|
|
190
189
|
else
|
191
190
|
val
|
192
191
|
end
|
193
|
-
elsif node.
|
192
|
+
elsif node.instance_of?(RKelly::Nodes::NumberNode)
|
194
193
|
node.value
|
195
|
-
elsif node.
|
194
|
+
elsif node.instance_of?(RKelly::Nodes::TrueNode)
|
196
195
|
true
|
197
|
-
elsif node.
|
196
|
+
elsif node.instance_of?(RKelly::Nodes::FalseNode)
|
198
197
|
false
|
199
|
-
elsif node.
|
198
|
+
elsif node.instance_of?(RKelly::Nodes::NullNode)
|
200
199
|
nil
|
201
200
|
else
|
202
201
|
raise GraphQL::ExecutionError, "Invalid filter: #{node} unknown rvalue node"
|
@@ -204,7 +203,7 @@ module Graphql
|
|
204
203
|
end
|
205
204
|
|
206
205
|
def sanitize_sql_like(value)
|
207
|
-
ActiveRecord::Base
|
206
|
+
ActiveRecord::Base.sanitize_sql_like(value)
|
208
207
|
end
|
209
208
|
|
210
209
|
def handle_NotEqualNode(node, model)
|
@@ -335,7 +334,7 @@ module Graphql
|
|
335
334
|
next arr << v if parent_class.new.attributes.key?(v)
|
336
335
|
|
337
336
|
klass = evaluate_model(parent_class, k)
|
338
|
-
arr << {
|
337
|
+
arr << {k.to_sym => hash_to_array_of_hashes(v, klass)} if klass.present? && v.present?
|
339
338
|
end
|
340
339
|
end
|
341
340
|
|
@@ -343,7 +342,7 @@ module Graphql
|
|
343
342
|
hash.select { |k, _| k.ends_with?("_ids") }.each do |(k, _)|
|
344
343
|
collection_name = k.gsub("_ids", "").pluralize
|
345
344
|
if hash[collection_name].blank?
|
346
|
-
hash[collection_name] = {
|
345
|
+
hash[collection_name] = {"id" => nil}
|
347
346
|
else
|
348
347
|
hash[collection_name]["id"] = nil
|
349
348
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-rails-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- poilon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graphql
|