deep_unrest 0.1.73 → 0.1.77

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8dc811b66aacee9eef482287d03e975dc75dbd0844d5b198ff3cff8d3acb4a6d
4
- data.tar.gz: 3302fe2dfde86ab590d4e430b2a5ced5c3d97bdfcad6fe770aff1201600b6f07
3
+ metadata.gz: 309a91b576429c12d2c5b6dfe938c736f20e065dfb36e19cd7e842e4e63a09f5
4
+ data.tar.gz: 9b3b6cd5b50ab09b43946721322783431bd3d1be59fc8d5c0234529662d451c1
5
5
  SHA512:
6
- metadata.gz: e5b98c8dd8a70c97d5858f4f3b2ac8cfc4f106a4109d96302e7a1cb3ae492edaf244934beec3b646975f20e1d13dfbdc8b32b8a85de609f07761b37df2531812
7
- data.tar.gz: 312a209f70086b73cbf636aeefcb318e49c87b5134bc20987612e49d10fe7dae292be6216624b7b1270cd8b0c5f3253eec138b565dbc582e96b32a899818b8da
6
+ metadata.gz: b6485d0999073274a62414519b7e807d5e97024904705f89d9aafb6e5170ea045faa6321223b3b929bfa84948a64aa1c40ce18e9c1f1369ffabe571a2f1c351c
7
+ data.tar.gz: ee10b543d71193acc2e8d4751e5ccfcfcbd3d90bd79b1e1d1a8ba7ff4505ef1d08b34bd604ecf8f13013b60b382476535a2dcd9cdc2f78040042b641f4f026f1
@@ -0,0 +1,13 @@
1
+ module DeepUnrest
2
+ module Concerns
3
+ module ResourceScope
4
+ extend ActiveSupport::Concern
5
+
6
+ class_methods do
7
+ def records_base(opts)
8
+ opts&.dig(:context, :scope) || super(opts)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -4,6 +4,7 @@ require 'deep_unrest/authorization/pundit_strategy'
4
4
  require 'deep_unrest/paginators/basic'
5
5
  require 'deep_unrest/concerns/null_concern'
6
6
  require 'deep_unrest/concerns/map_temp_ids'
7
+ require 'deep_unrest/concerns/resource_scope'
7
8
 
8
9
  module DeepUnrest
9
10
  class Engine < ::Rails::Engine
@@ -116,9 +116,7 @@ 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
- old_records = resource.method(:records)
121
- resource.define_singleton_method(:records) { |ctx| item[:scope].merge(old_records.call(ctx)) }
119
+ resource_scope = item[:scope]
122
120
 
123
121
  # transform sort value casing for rails
124
122
  sort_criteria = query[:sort]&.map { |s| s.clone.merge(field: s[:field].underscore) }
@@ -127,7 +125,7 @@ module DeepUnrest
127
125
  processor = JSONAPI::Processor.new(resource,
128
126
  :find,
129
127
  filters: query[:filter] || {},
130
- context: ctx,
128
+ context: ctx.clone.merge(scope: resource_scope),
131
129
  sort_criteria: sort_criteria,
132
130
  serializer: serializer,
133
131
  paginator: paginator)
@@ -136,9 +134,6 @@ module DeepUnrest
136
134
 
137
135
  resource_results = format_processor_results(resource, jsonapi_result)
138
136
 
139
- # un-monkey patch the resource :records method
140
- resource.define_singleton_method(:records) { |ctx| old_records.call(ctx) }
141
-
142
137
  meta << {
143
138
  addr: [*addr, item[:key], 'meta'],
144
139
  serialized_result: {
@@ -221,3 +216,4 @@ module DeepUnrest
221
216
  end
222
217
  end
223
218
  end
219
+
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DeepUnrest
4
- VERSION = '0.1.73'
4
+ VERSION = '0.1.77'
5
5
  end
@@ -110,7 +110,7 @@ module DeepUnrest
110
110
  update_body[:_destroy] = true if item.dig(:query, :destroy)
111
111
  DeepUnrest.set_attr(memo, item[:ar_addr].clone, update_body)
112
112
  if item[:ar_addr].size == 1
113
- item[:mutate] = memo.fetch(*item[:ar_addr])
113
+ item[:mutate] = update_body
114
114
  item[:scope_type] = :update if item[:scope_type] == :show
115
115
  end
116
116
  end
@@ -142,9 +142,10 @@ module DeepUnrest
142
142
  when :destroy
143
143
  id = item.dig(:query, :id)
144
144
  model = item[:klass].find(id)
145
+ model.deep_unrest_query_uuid = item.dig(:query, :uuid)
145
146
  resource = item[:resource].new(model, context)
146
147
  resource.run_callbacks :remove do
147
- item[:klass].destroy(id)
148
+ model.destroy!
148
149
  end
149
150
  end
150
151
 
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.73
4
+ version: 0.1.77
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-08-30 00:00:00.000000000 Z
11
+ date: 2021-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -147,6 +147,7 @@ files:
147
147
  - lib/deep_unrest/authorization/pundit_strategy.rb
148
148
  - lib/deep_unrest/concerns/map_temp_ids.rb
149
149
  - lib/deep_unrest/concerns/null_concern.rb
150
+ - lib/deep_unrest/concerns/resource_scope.rb
150
151
  - lib/deep_unrest/engine.rb
151
152
  - lib/deep_unrest/paginators/basic.rb
152
153
  - lib/deep_unrest/read.rb