graphql-rails-api 0.9.3 → 0.9.3.2

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: dfe867c4f64d230748b3d8a9d1aece95a16c6692d96491fd67298ad522ddd5ce
4
- data.tar.gz: 0a407e15eff08e02e8a202da0d47d3fe6116af42eb591421e3b5a914964f7a48
3
+ metadata.gz: c62ea3022bb2b2681bb9dfd2ca19f6acabe9f83059a97e8360a1fca53b6c934a
4
+ data.tar.gz: 38b9503103caddd4afd4e13076c96b01fa425d83703cf3f9a68c775f95e9828b
5
5
  SHA512:
6
- metadata.gz: e508676774b519da77b95483e1a0d28a91e1843925dc1669f674cb958d911ada161968923a385d86af51b86d47af56baecff3fe5a959cb1b727aed556834df6c
7
- data.tar.gz: 3e1aefb503057898ba28eb3008fd2e8b4c63f792fd530ac0a3bcfdf8754ed168a5b5f7f6c1dbaf76f96961494bd03da7f905fc57ba19ccaabd26af1eb8dddffc
6
+ metadata.gz: a30f00567812cb00547539c9c581f4863685f57f1dc161757c7abd575a5627105aaef005e29ac28fa2fbdecb9866448930f5855d0d84d793302442673978699e
7
+ data.tar.gz: 556e02f77b4bc35d3791f34726e72e3690ad25b0ee418c795857f60810e0d948ca2b2a0da545d00dcf6bd331b806fef8589efba44d95b739ce81d39f4f7c1145
@@ -73,7 +73,7 @@ module Graphql
73
73
  end
74
74
 
75
75
  @model = if %i[string text].include?(field_type)
76
- @model.order(Arel.sql("upper(#{ordered_field}) #{sign}"))
76
+ @model.order(Arel.sql("#{ordered_field} #{sign}"))
77
77
  else
78
78
  @model.order(Arel.sql("#{ordered_field} #{sign}"))
79
79
  end
@@ -120,6 +120,8 @@ module Graphql
120
120
  handle_LessNode(node, model)
121
121
  elsif node.instance_of?(RKelly::Nodes::GreaterNode)
122
122
  handle_GreaterNode(node, model)
123
+ elsif node.instance_of?(RKelly::Nodes::ModulusNode)
124
+ handle_ModulusNode(node, model)
123
125
  else
124
126
  raise GraphQL::ExecutionError, "Invalid filter: #{node.class} unknown operator"
125
127
  end
@@ -137,6 +139,37 @@ module Graphql
137
139
  handle_node(node.left, model).or(handle_node(node.value, model))
138
140
  end
139
141
 
142
+ def handle_ModulusNode(node, model)
143
+ arel_field, model, type, value = handle_operator_node(node, model)
144
+ arel_field.name = arel_field.name.underscore
145
+
146
+ if value.nil?
147
+ model.where(arel_field.eq(nil))
148
+ elsif type == :text || type == :string
149
+ model.where(arel_field.matches("%" + sanitize_sql_like(value) + "%"))
150
+ elsif type == :datetime
151
+ if value.instance_of?(DateTime)
152
+ model.where(arel_field.gteq(value).and(arel_field.lteq(value + 1.day)))
153
+ else
154
+ model.where(
155
+ Arel::Nodes::NamedFunction.new(
156
+ "CAST",
157
+ [Arel::Nodes::As.new(arel_field, Arel::Nodes::SqlLiteral.new("text"))]
158
+ ).matches("%" + sanitize_sql_like(value) + "%")
159
+ )
160
+ end
161
+ elsif type == :uuid
162
+ model.where(
163
+ Arel::Nodes::NamedFunction.new(
164
+ "CAST",
165
+ [Arel::Nodes::As.new(arel_field, Arel::Nodes::SqlLiteral.new("text"))]
166
+ ).matches("%" + sanitize_sql_like(value) + "%")
167
+ )
168
+ else
169
+ model.where(arel_field.eq(value))
170
+ end
171
+ end
172
+
140
173
  def handle_dot_accessor_node(node, model)
141
174
  associated_model = node.left.value.value
142
175
  accessor = node.left.accessor
@@ -1,7 +1,7 @@
1
1
  module Graphql
2
2
  module Rails
3
3
  module Api
4
- VERSION = "0.9.3".freeze
4
+ VERSION = "0.9.3.2".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.3
4
+ version: 0.9.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - poilon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-06 00:00:00.000000000 Z
11
+ date: 2024-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphql