deep_unrest 0.1.55 → 0.1.56
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/deep_unrest/read.rb +26 -29
- data/lib/deep_unrest/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: e13381b727ec0a2812128993e0fd888ac8c5acb03f5f5602d098415f33a84132
|
4
|
+
data.tar.gz: bea7cdd18acdb17ba2fa03bfb1ea47695107b588d76959d19cd6e83ff4fda5e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f6449677c53c33f1196d42134a7eb7aed6d0bf926fb1d29bf71cbadd8eaa7a8dde901984f5b9bb664052f7a56ecce7678c634079818c7cf716e8f44cf729596
|
7
|
+
data.tar.gz: e6451b27a0e51830475f8a9aca4fb3b3502a58debe241ee00d4dfdba760461758c07ae39b7d56286d5382ec5cbe2305a67472d71cc6e228bebdb704706d170ac
|
data/lib/deep_unrest/read.rb
CHANGED
@@ -16,7 +16,6 @@ module DeepUnrest
|
|
16
16
|
addr: resource_addr,
|
17
17
|
key: k.camelize(:lower),
|
18
18
|
uuid: uuid,
|
19
|
-
current_user: user,
|
20
19
|
query: DeepUnrest.deep_underscore_keys(v) },
|
21
20
|
*create_read_mappings(v[:include], user, [*resource_addr, :include])]
|
22
21
|
end.flatten.compact
|
@@ -52,18 +51,18 @@ module DeepUnrest
|
|
52
51
|
query
|
53
52
|
end
|
54
53
|
|
55
|
-
def self.recurse_included_queries(item, mappings, parent_context, included, meta, addr)
|
54
|
+
def self.recurse_included_queries(ctx, item, mappings, parent_context, included, meta, addr)
|
56
55
|
return unless item[:query].key?(:include)
|
57
56
|
|
58
57
|
item[:query][:include].each do |_k, v|
|
59
58
|
next_context = parent_context.clone
|
60
59
|
next_context[item[:key].singularize] = item[:record]
|
61
60
|
next_mapping = mappings.find { |m| m[:uuid] == v[:uuid] }.clone
|
62
|
-
execute_query(next_mapping, mappings, next_context, included, meta, addr, item)
|
61
|
+
execute_query(ctx, next_mapping, mappings, next_context, included, meta, addr, item)
|
63
62
|
end
|
64
63
|
end
|
65
64
|
|
66
|
-
def self.query_item(mapping, mappings, parent_context, included, meta, addr, _parent)
|
65
|
+
def self.query_item(ctx, mapping, mappings, parent_context, included, meta, addr, _parent)
|
67
66
|
query = resolve_conditions(mapping[:query].deep_dup, parent_context)
|
68
67
|
|
69
68
|
raise DeepUnrest::InvalidQuery unless query[:id] || query[:find]
|
@@ -88,7 +87,7 @@ module DeepUnrest
|
|
88
87
|
|
89
88
|
included << result
|
90
89
|
|
91
|
-
recurse_included_queries(result, mappings, parent_context, included, meta, [*next_addr, :include])
|
90
|
+
recurse_included_queries(ctx, result, mappings, parent_context, included, meta, [*next_addr, :include])
|
92
91
|
end
|
93
92
|
|
94
93
|
def self.get_paginator(query, _parent)
|
@@ -103,7 +102,7 @@ module DeepUnrest
|
|
103
102
|
end
|
104
103
|
end
|
105
104
|
|
106
|
-
def self.query_list(item, mappings, parent_context, included, meta, addr, parent)
|
105
|
+
def self.query_list(ctx, item, mappings, parent_context, included, meta, addr, parent)
|
107
106
|
base_query = item[:query].deep_dup
|
108
107
|
extension = base_query.dig(:extend, parent&.fetch(:record)&.id&.to_s&.underscore) || {}
|
109
108
|
query = resolve_conditions(base_query.deep_merge(extension),
|
@@ -120,22 +119,20 @@ module DeepUnrest
|
|
120
119
|
item[:scope].merge(records_original(ctx))
|
121
120
|
}
|
122
121
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
r_metaclass.send(:alias_method, :records, :records_original)
|
138
|
-
end
|
122
|
+
# transform sort value casing for rails
|
123
|
+
sort_criteria = query[:sort]&.map { |s| s.clone.merge(field: s[:field].underscore) }
|
124
|
+
|
125
|
+
processor = JSONAPI::Processor.new(resource,
|
126
|
+
:find,
|
127
|
+
filters: query[:filter] || {},
|
128
|
+
context: ctx,
|
129
|
+
sort_criteria: sort_criteria,
|
130
|
+
paginator: paginator)
|
131
|
+
|
132
|
+
jsonapi_result = processor.process
|
133
|
+
|
134
|
+
# un-monkey patch the resource :records method
|
135
|
+
r_metaclass.send(:alias_method, :records, :records_original)
|
139
136
|
|
140
137
|
meta << {
|
141
138
|
addr: [*addr, item[:key], 'meta'],
|
@@ -165,7 +162,7 @@ module DeepUnrest
|
|
165
162
|
}
|
166
163
|
|
167
164
|
included << result
|
168
|
-
recurse_included_queries(result, mappings, parent_context, included, meta, [*next_addr, :include])
|
165
|
+
recurse_included_queries(ctx, result, mappings, parent_context, included, meta, [*next_addr, :include])
|
169
166
|
end
|
170
167
|
end
|
171
168
|
|
@@ -175,17 +172,17 @@ module DeepUnrest
|
|
175
172
|
:list
|
176
173
|
end
|
177
174
|
|
178
|
-
def self.execute_query(item, mappings, parent_context, included, meta, addr, parent = nil)
|
175
|
+
def self.execute_query(ctx, item, mappings, parent_context, included, meta, addr, parent = nil)
|
179
176
|
if get_query_type(item) == :list
|
180
|
-
query_list(item, mappings, parent_context, included, meta, addr, parent)
|
177
|
+
query_list(ctx, item, mappings, parent_context, included, meta, addr, parent)
|
181
178
|
else
|
182
|
-
query_item(item, mappings, parent_context, included, meta, addr, parent)
|
179
|
+
query_item(ctx, item, mappings, parent_context, included, meta, addr, parent)
|
183
180
|
end
|
184
181
|
end
|
185
182
|
|
186
|
-
def self.execute_queries(mappings, parent_context = {}, included = [], meta = [], addr = [])
|
183
|
+
def self.execute_queries(ctx, mappings, parent_context = {}, included = [], meta = [], addr = [])
|
187
184
|
mappings.select { |m| m[:addr].size == 1 }.each do |item|
|
188
|
-
item[:results] = execute_query(item, mappings, parent_context, included, meta, addr)
|
185
|
+
item[:results] = execute_query(ctx, item, mappings, parent_context, included, meta, addr)
|
189
186
|
end
|
190
187
|
[included, meta]
|
191
188
|
end
|
@@ -209,7 +206,7 @@ module DeepUnrest
|
|
209
206
|
DeepUnrest.collect_authorized_scopes(mappings, user)
|
210
207
|
|
211
208
|
# read data
|
212
|
-
data, meta = execute_queries(mappings)
|
209
|
+
data, meta = execute_queries(ctx, mappings)
|
213
210
|
|
214
211
|
# serialize using JSONAPI resource serializers
|
215
212
|
serialize_results(ctx, data)
|
data/lib/deep_unrest/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deep_unrest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.56
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lynn Hurley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|