pggraphql 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pggraphql.rb +2 -2
- data/lib/pggraphql/version.rb +1 -1
- data/test/test_pggraphql.rb +24 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a496c7dcb4e4874d467f306c9c09694fd7eb8cc0
|
4
|
+
data.tar.gz: 281ff55e808ed19658b7c83eeaeb45195387903c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f51a3e077d8a80fe633a7a96599f023e4e55e8b537756ef3f19de3802caa0b354afdb957b40de31666bd510a9ca4bf18785307c93a3be7c56c2a7d7b61520631
|
7
|
+
data.tar.gz: c019677cec5606e7e842a01b1269d96851d9fda23f648fef1d277123e3af257bd46b6e893b1c1f4a2c04505dd725627b66cd79716b54218af4cf5bd02f37838b
|
data/lib/pggraphql.rb
CHANGED
@@ -145,7 +145,7 @@ module PgGraphQl
|
|
145
145
|
|
146
146
|
column_expr_proc = -> do
|
147
147
|
if field_def[:expr]
|
148
|
-
handle_sql_part(field_def[:expr].call(column_name), params, level, table_levels)
|
148
|
+
handle_sql_part(field_def[:expr].call(column_name, e[1]), params, level, table_levels)
|
149
149
|
else
|
150
150
|
handle_sql_part("#{column_name}", params, level, table_levels)
|
151
151
|
end
|
@@ -295,7 +295,7 @@ module PgGraphQl
|
|
295
295
|
@fields = fields.map{|f| create_field(f)}
|
296
296
|
end
|
297
297
|
def fields
|
298
|
-
@fields + [create_field({name: :id, as: nil, expr: ->(c){ "#{c}" }})] + (@subtypes.empty? ? [] : [create_field(:type)])
|
298
|
+
@fields + [create_field({name: :id, as: nil, expr: ->(c, query){ "#{c}" }})] + (@subtypes.empty? ? [] : [create_field(:type)])
|
299
299
|
end
|
300
300
|
def create_field(field)
|
301
301
|
if field.is_a?(Symbol)
|
data/lib/pggraphql/version.rb
CHANGED
data/test/test_pggraphql.rb
CHANGED
@@ -158,6 +158,23 @@ module PgGraphQl
|
|
158
158
|
), token(res[:sql])
|
159
159
|
assert_equal [], res[:params]
|
160
160
|
|
161
|
+
# ---
|
162
|
+
|
163
|
+
res = to_sql({user: {email: nil, other: nil, :"$custom" => {name: "bob"}}}) do |s|
|
164
|
+
s.root :user
|
165
|
+
s.type :user, null_pk: :array, fields: [:email, {name: :other, expr: ->(c, query){ "'#{query[:"$custom"][:name]}'" }}]
|
166
|
+
end
|
167
|
+
|
168
|
+
assert_equal token(<<-SQL
|
169
|
+
select 'user'::text as key,
|
170
|
+
(select to_json(coalesce(json_agg(x.*), '[]'::json))
|
171
|
+
from (select users1.id,
|
172
|
+
users1.email as email,
|
173
|
+
'bob' as other
|
174
|
+
from users as users1) x) as value
|
175
|
+
SQL
|
176
|
+
), token(res[:sql])
|
177
|
+
|
161
178
|
end
|
162
179
|
|
163
180
|
def test_simple_igore_dollar_fields
|
@@ -216,10 +233,12 @@ module PgGraphQl
|
|
216
233
|
|
217
234
|
# ----
|
218
235
|
|
219
|
-
res = to_sql({user: {id: 1, email: nil}}) do |s|
|
236
|
+
res = to_sql({user: {id: 1, email: nil, :"$custom" => {order: "email"}}}) do |s|
|
220
237
|
s.root :user
|
221
238
|
s.type :user, fields: [:email] do |t|
|
222
|
-
t.table_query = ->(query)
|
239
|
+
t.table_query = ->(query) do
|
240
|
+
"select 1 as id, 'my@domain' as email order by #{query[:"$custom"][:order]} desc"
|
241
|
+
end
|
223
242
|
end
|
224
243
|
end
|
225
244
|
|
@@ -228,7 +247,7 @@ module PgGraphQl
|
|
228
247
|
(select to_json(x.*)
|
229
248
|
from (select users1.id,
|
230
249
|
users1.email as email
|
231
|
-
from (select 1 as id, 'my@domain' as email) as users1
|
250
|
+
from (select 1 as id, 'my@domain' as email order by email desc) as users1
|
232
251
|
where users1.id = ? limit 1) x) as value
|
233
252
|
SQL
|
234
253
|
), token(res[:sql])
|
@@ -591,7 +610,7 @@ module PgGraphQl
|
|
591
610
|
res = to_sql({flow: {id: 1, data: nil}}) do |s|
|
592
611
|
s.root :flow
|
593
612
|
s.type :flow do |t|
|
594
|
-
t.fields = [{name: :data, expr: ->(c){ "to_json(#{c})" } }]
|
613
|
+
t.fields = [{name: :data, expr: ->(c, query){ "to_json(#{c})" } }]
|
595
614
|
end
|
596
615
|
end
|
597
616
|
|
@@ -606,7 +625,7 @@ module PgGraphQl
|
|
606
625
|
res = to_sql({flow: {id: 1, data: nil}}) do |s|
|
607
626
|
s.root :flow
|
608
627
|
s.type :flow do |t|
|
609
|
-
t.fields = [{name: :data, as: nil, expr: ->(c){ "to_json(#{c})" } }]
|
628
|
+
t.fields = [{name: :data, as: nil, expr: ->(c, query){ "to_json(#{c})" } }]
|
610
629
|
end
|
611
630
|
end
|
612
631
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pggraphql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Zimmek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|