graphql-rails-api 0.9.2 → 0.9.3.pre.fix

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e7801279a80cf36fceb00b2c734cda2ff89e0c695fa77efa10e706e10fb708b
4
- data.tar.gz: e0fa94077d38b530f56617ccf14825f330d427c510bf44259f43baf2d28ffc8a
3
+ metadata.gz: 28fb07b00c4ddc6fab6260937a8ab6b5edd025ae6703ab2334a3fba30e56619c
4
+ data.tar.gz: 5991b8d3475a620d0c4a0a6106795b8559123cfc65faf6f9cb3a5f44292778ec
5
5
  SHA512:
6
- metadata.gz: 45940578253a9645e325860234d793dc8c00c7fdb69c5758748f45fe66d09c32f08e43d60b3180537953dead3f2b5edf470fe2516cf40a5ed0a237124cd3df8e
7
- data.tar.gz: 3f830d57e8ae131cae74735ba29ea24e3a8b2391899aea329b18aec18fc3b75647e3d085201211c514fd6d397dba1739ae0471f0ea906e0650c6214fbcf429ee
6
+ metadata.gz: 95f60329781d38bf3275a24617868a2baa0fa82812fb4ecd5b79c36f45bbc9ad69a8f98270c797d76df384719417a60fb27a6cd31350c5fb1baa1ceecaae9ceb
7
+ data.tar.gz: 9c76d727e713a14110ea7e77314f446d5c996719abacd228f05202c8c1b7f379e9c1bdb2e67bdc6173bcfc2a6a84a704de6e32d60dd4155f68f769619aaeb822
@@ -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.length
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
 
@@ -57,25 +57,28 @@ module Graphql
57
57
  def transform_order
58
58
  return if @order_by.blank?
59
59
 
60
- sign = @order_by.split(" ").last.downcase == "desc" ? "desc" : "asc"
61
- column = @order_by.split(" ").first.strip
60
+ @order_by.split(",").each do |order|
62
61
 
63
- if column.include?(".")
64
- associated_model = column.split(".").first
65
- accessor = column.split(".").last
66
- assoc = get_assoc!(@model, associated_model)
67
- field_type = get_field_type!(assoc.klass, accessor)
68
- @model = @model.left_joins(associated_model.to_sym)
69
- ordered_field = "#{associated_model.pluralize}.#{accessor}"
70
- else
71
- field_type = get_field_type!(@model, column)
72
- ordered_field = "#{model_name.pluralize}.#{column}"
73
- end
62
+ sign = order.split(" ").last.downcase == "desc" ? "desc" : "asc"
63
+ column = order.split(" ").first.strip
74
64
 
75
- if %i[string text].include?(field_type)
76
- @model = @model.order(Arel.sql("upper(#{ordered_field}) #{sign}"))
77
- else
78
- @model = @model.order(Arel.sql("#{ordered_field} #{sign}"))
65
+ if column.include?(".")
66
+ associated_model = column.split(".").first
67
+ accessor = column.split(".").last
68
+ assoc = get_assoc!(@model, associated_model)
69
+ field_type = get_field_type!(assoc.klass, accessor)
70
+ @model = @model.left_joins(associated_model.to_sym)
71
+ ordered_field = "#{associated_model.pluralize}.#{accessor}"
72
+ else
73
+ field_type = get_field_type!(@model, column)
74
+ ordered_field = "#{model_name.pluralize}.#{column}"
75
+ end
76
+
77
+ @model = if %i[string text].include?(field_type)
78
+ @model.order(Arel.sql("upper(#{ordered_field}) #{sign}"))
79
+ else
80
+ @model.order(Arel.sql("#{ordered_field} #{sign}"))
81
+ end
79
82
  end
80
83
  end
81
84
 
@@ -93,33 +96,32 @@ module Graphql
93
96
  if @need_distinct_results
94
97
  @model = @model.distinct
95
98
  end
96
-
97
99
  rescue RKelly::SyntaxError => e
98
100
  raise GraphQL::ExecutionError, "Invalid filter: #{e.message}"
99
101
  end
100
102
 
101
103
  def handle_node(node, model)
102
- if node.class == RKelly::Nodes::ParentheticalNode
104
+ if node.instance_of?(RKelly::Nodes::ParentheticalNode)
103
105
  handle_ParentheticalNode(node, model)
104
- elsif node.class == RKelly::Nodes::LogicalAndNode
106
+ elsif node.instance_of?(RKelly::Nodes::LogicalAndNode)
105
107
  handle_LogicalAndNode(node, model)
106
- elsif node.class == RKelly::Nodes::LogicalOrNode
108
+ elsif node.instance_of?(RKelly::Nodes::LogicalOrNode)
107
109
  handle_LogicalOrNode(node, model)
108
- elsif node.class == RKelly::Nodes::NotEqualNode
110
+ elsif node.instance_of?(RKelly::Nodes::NotEqualNode)
109
111
  handle_NotEqualNode(node, model)
110
- elsif node.class == RKelly::Nodes::EqualNode
112
+ elsif node.instance_of?(RKelly::Nodes::EqualNode)
111
113
  handle_EqualNode(node, model)
112
- elsif node.class == RKelly::Nodes::StrictEqualNode
114
+ elsif node.instance_of?(RKelly::Nodes::StrictEqualNode)
113
115
  handle_StrictEqualNode(node, model)
114
- elsif node.class == RKelly::Nodes::NotStrictEqualNode
116
+ elsif node.instance_of?(RKelly::Nodes::NotStrictEqualNode)
115
117
  handle_NotStrictEqualNode(node, model)
116
- elsif node.class == RKelly::Nodes::GreaterOrEqualNode
118
+ elsif node.instance_of?(RKelly::Nodes::GreaterOrEqualNode)
117
119
  handle_GreaterOrEqualNode(node, model)
118
- elsif node.class == RKelly::Nodes::LessOrEqualNode
120
+ elsif node.instance_of?(RKelly::Nodes::LessOrEqualNode)
119
121
  handle_LessOrEqualNode(node, model)
120
- elsif node.class == RKelly::Nodes::LessNode
122
+ elsif node.instance_of?(RKelly::Nodes::LessNode)
121
123
  handle_LessNode(node, model)
122
- elsif node.class == RKelly::Nodes::GreaterNode
124
+ elsif node.instance_of?(RKelly::Nodes::GreaterNode)
123
125
  handle_GreaterNode(node, model)
124
126
  else
125
127
  raise GraphQL::ExecutionError, "Invalid filter: #{node.class} unknown operator"
@@ -162,9 +164,9 @@ module Graphql
162
164
  end
163
165
 
164
166
  def handle_operator_node(node, model)
165
- if node.left.class == RKelly::Nodes::DotAccessorNode
167
+ if node.left.instance_of?(RKelly::Nodes::DotAccessorNode)
166
168
  handle_dot_accessor_node(node, model)
167
- elsif node.left.class == RKelly::Nodes::ResolveNode
169
+ elsif node.left.instance_of?(RKelly::Nodes::ResolveNode)
168
170
  handle_resolve_node(node, model)
169
171
  else
170
172
  raise GraphQL::ExecutionError, "Invalid left value: #{node.left.class}"
@@ -172,7 +174,7 @@ module Graphql
172
174
  end
173
175
 
174
176
  def value_from_node(node, sym_type, sym, model)
175
- if node.class == RKelly::Nodes::StringNode
177
+ if node.instance_of?(RKelly::Nodes::StringNode)
176
178
  val = node.value.gsub(/^'|'$|^"|"$/, "")
177
179
  if sym_type == :datetime
178
180
  DateTime.parse(val)
@@ -190,13 +192,13 @@ module Graphql
190
192
  else
191
193
  val
192
194
  end
193
- elsif node.class == RKelly::Nodes::NumberNode
195
+ elsif node.instance_of?(RKelly::Nodes::NumberNode)
194
196
  node.value
195
- elsif node.class == RKelly::Nodes::TrueNode
197
+ elsif node.instance_of?(RKelly::Nodes::TrueNode)
196
198
  true
197
- elsif node.class == RKelly::Nodes::FalseNode
199
+ elsif node.instance_of?(RKelly::Nodes::FalseNode)
198
200
  false
199
- elsif node.class == RKelly::Nodes::NullNode
201
+ elsif node.instance_of?(RKelly::Nodes::NullNode)
200
202
  nil
201
203
  else
202
204
  raise GraphQL::ExecutionError, "Invalid filter: #{node} unknown rvalue node"
@@ -204,7 +206,7 @@ module Graphql
204
206
  end
205
207
 
206
208
  def sanitize_sql_like(value)
207
- ActiveRecord::Base::sanitize_sql_like(value)
209
+ ActiveRecord::Base.sanitize_sql_like(value)
208
210
  end
209
211
 
210
212
  def handle_NotEqualNode(node, model)
@@ -335,7 +337,7 @@ module Graphql
335
337
  next arr << v if parent_class.new.attributes.key?(v)
336
338
 
337
339
  klass = evaluate_model(parent_class, k)
338
- arr << { k.to_sym => hash_to_array_of_hashes(v, klass) } if klass.present? && v.present?
340
+ arr << {k.to_sym => hash_to_array_of_hashes(v, klass)} if klass.present? && v.present?
339
341
  end
340
342
  end
341
343
 
@@ -343,7 +345,7 @@ module Graphql
343
345
  hash.select { |k, _| k.ends_with?("_ids") }.each do |(k, _)|
344
346
  collection_name = k.gsub("_ids", "").pluralize
345
347
  if hash[collection_name].blank?
346
- hash[collection_name] = { "id" => nil }
348
+ hash[collection_name] = {"id" => nil}
347
349
  else
348
350
  hash[collection_name]["id"] = nil
349
351
  end
@@ -1,7 +1,7 @@
1
1
  module Graphql
2
2
  module Rails
3
3
  module Api
4
- VERSION = '0.9.2'.freeze
4
+ VERSION = "0.9.3-fix".freeze
5
5
  end
6
6
  end
7
7
  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.2
4
+ version: 0.9.3.pre.fix
5
5
  platform: ruby
6
6
  authors:
7
7
  - poilon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-19 00:00:00.000000000 Z
11
+ date: 2023-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphql
@@ -110,11 +110,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
110
  version: '0'
111
111
  required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - ">="
113
+ - - ">"
114
114
  - !ruby/object:Gem::Version
115
- version: '0'
115
+ version: 1.3.1
116
116
  requirements: []
117
- rubygems_version: 3.3.7
117
+ rubygems_version: 3.1.2
118
118
  signing_key:
119
119
  specification_version: 4
120
120
  summary: Graphql rails api framework to create easily graphql api with rails