pggraphql 0.1.3 → 0.1.4
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/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
|