deep_unrest 0.1.70 → 0.1.71
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 +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
|