deep_unrest 0.1.70 → 0.1.71
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/deep_unrest/read.rb +23 -10
- data/lib/deep_unrest/version.rb +1 -1
- data/lib/deep_unrest/write.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: b194593cf43cb152738a7a45f748af7ebebcdc8e1eef0e65cb4e66cb5afead0b
|
|
4
|
+
data.tar.gz: c64a30a21918ad72e44269e652962ac73c11129b7a43b8ae8fe430e1ff081dd9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0cbc2b6412e32c94173f074d205d5d04b8b24f50acaa036e5ec6aa9faa70edda2cd5811ee9b07dfc72e5e1dae59b7b8386a97a83f53cf6bca989d005cffff1d4
|
|
7
|
+
data.tar.gz: 206e06dbbb0fa9991acb0ac8dac8ce14f2348b7aa57d7cb79688312d3c0f073ede6570605e1db49f216b1ae52e9225ce1879d6b3a4cba9c77e0be87ad2136277
|
data/lib/deep_unrest/read.rb
CHANGED
|
@@ -116,19 +116,27 @@ module DeepUnrest
|
|
|
116
116
|
paginator = get_paginator(query, parent)
|
|
117
117
|
resource = item[:resource]
|
|
118
118
|
|
|
119
|
-
# monkey patch the resource to only show authorized records
|
|
120
119
|
r_metaclass = class << resource; self; end
|
|
121
|
-
r_metaclass.
|
|
120
|
+
if r_metaclass.method_defined? :records
|
|
121
|
+
r_metaclass.class_eval do
|
|
122
|
+
alias_method :records_original, :records
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
122
126
|
# TODO: find a way to do this that doesn't blow out the original :records method
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
resource.define_singleton_method(:records) { |ctx|
|
|
128
|
+
full_scope = if self.respond_to? :records_original
|
|
129
|
+
records_original(ctx)
|
|
130
|
+
else
|
|
131
|
+
super(ctx)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
item[:scope].merge(full_scope)
|
|
125
135
|
}
|
|
126
136
|
|
|
127
137
|
# transform sort value casing for rails
|
|
128
138
|
sort_criteria = query[:sort]&.map { |s| s.clone.merge(field: s[:field].underscore) }
|
|
129
|
-
|
|
130
139
|
serializer = JSONAPI::ResourceSerializer.new(resource)
|
|
131
|
-
|
|
132
140
|
processor = JSONAPI::Processor.new(resource,
|
|
133
141
|
:find,
|
|
134
142
|
filters: query[:filter] || {},
|
|
@@ -138,12 +146,8 @@ module DeepUnrest
|
|
|
138
146
|
paginator: paginator)
|
|
139
147
|
|
|
140
148
|
jsonapi_result = processor.process
|
|
141
|
-
|
|
142
149
|
resource_results = format_processor_results(resource, jsonapi_result)
|
|
143
150
|
|
|
144
|
-
# un-monkey patch the resource :records method
|
|
145
|
-
r_metaclass.send(:alias_method, :records, :records_original)
|
|
146
|
-
|
|
147
151
|
meta << {
|
|
148
152
|
addr: [*addr, item[:key], 'meta'],
|
|
149
153
|
serialized_result: {
|
|
@@ -174,6 +178,15 @@ module DeepUnrest
|
|
|
174
178
|
included << result
|
|
175
179
|
recurse_included_queries(ctx, result, mappings, parent_context, included, meta, [*next_addr, :include])
|
|
176
180
|
end
|
|
181
|
+
ensure
|
|
182
|
+
# un-monkey patch the resource :records method
|
|
183
|
+
if r_metaclass.method_defined? :records_original
|
|
184
|
+
r_metaclass.class_eval do
|
|
185
|
+
alias_method :records, :records_original
|
|
186
|
+
end
|
|
187
|
+
else
|
|
188
|
+
r_metaclass.undef_method :records
|
|
189
|
+
end
|
|
177
190
|
end
|
|
178
191
|
|
|
179
192
|
def self.get_query_type(item)
|
data/lib/deep_unrest/version.rb
CHANGED
data/lib/deep_unrest/write.rb
CHANGED
|
@@ -82,7 +82,7 @@ module DeepUnrest
|
|
|
82
82
|
|
|
83
83
|
p.parse_params(resource, { attributes: attributes }, opts)[:attributes]
|
|
84
84
|
rescue JSONAPI::Exceptions::ParameterNotAllowed
|
|
85
|
-
unpermitted_keys = attributes.keys.map(&:to_sym) - opts
|
|
85
|
+
unpermitted_keys = attributes.keys.map(&:underscore).map(&:to_sym) - opts
|
|
86
86
|
item[:errors] = unpermitted_keys.each_with_object({}) do |attr_key, memo|
|
|
87
87
|
memo[attr_key] = 'Unpermitted parameter'
|
|
88
88
|
end
|
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.71
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lynn Hurley
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-08-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|