rest_framework 0.9.14 → 0.9.15
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 734af1c9a436fd842c36503794ef16b94e4b0d3f7ad91d011bcd12d06e4b1e21
|
4
|
+
data.tar.gz: d4c0140985a5405750cdd092c4a70b092be69b3523a3c088d2268711c38e5ad1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fc442c77a0c8543913ceacd7a7116f9e044ee1d9b0e3e08a5c58ddb6d00ee12b7f719c83e7aed233070075bb031aa8a90cabc7337bd57e28883aca4221d5ea6
|
7
|
+
data.tar.gz: 2f60ffddea13e956a3a0a0ec909d2de533cc0c5b350af75467f7e006b5133c982192cbcc28da7cb566803458c76917ae702f4838c3f0096722a94f5309babb7a
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.15
|
@@ -6,9 +6,11 @@ module RESTFramework::Mixins::BaseModelControllerMixin
|
|
6
6
|
return {
|
7
7
|
io: StringIO.new(Base64.decode64(payload)),
|
8
8
|
content_type: content_type,
|
9
|
-
filename: "
|
9
|
+
filename: "file_#{field}#{Rack::Mime::MIME_TYPES.invert[content_type]}",
|
10
10
|
}
|
11
11
|
}
|
12
|
+
ACTIVESTORAGE_KEYS = [:io, :content_type, :filename, :identify, :key]
|
13
|
+
|
12
14
|
include RESTFramework::BaseControllerMixin
|
13
15
|
|
14
16
|
RRF_BASE_MODEL_CONFIG = {
|
@@ -411,18 +413,21 @@ module RESTFramework::Mixins::BaseModelControllerMixin
|
|
411
413
|
# For fields, automatically add `_id`/`_ids` and `_attributes` variations for associations.
|
412
414
|
variations = []
|
413
415
|
hash_variations = {}
|
416
|
+
alt_hash_variations = {}
|
414
417
|
reflections = self.class.get_model.reflections
|
415
418
|
@_get_allowed_parameters = self.get_fields.map { |f|
|
416
419
|
f = f.to_s
|
417
420
|
|
418
421
|
# ActiveStorage Integration: `has_one_attached`.
|
419
422
|
if reflections.key?("#{f}_attachment")
|
423
|
+
hash_variations[f] = ACTIVESTORAGE_KEYS
|
420
424
|
next f
|
421
425
|
end
|
422
426
|
|
423
427
|
# ActiveStorage Integration: `has_many_attached`.
|
424
428
|
if reflections.key?("#{f}_attachments")
|
425
429
|
hash_variations[f] = []
|
430
|
+
alt_hash_variations[f] = ACTIVESTORAGE_KEYS
|
426
431
|
next nil
|
427
432
|
end
|
428
433
|
|
@@ -443,7 +448,9 @@ module RESTFramework::Mixins::BaseModelControllerMixin
|
|
443
448
|
end
|
444
449
|
|
445
450
|
if self.permit_nested_attributes_assignment
|
446
|
-
hash_variations["#{f}_attributes"] =
|
451
|
+
hash_variations["#{f}_attributes"] = (
|
452
|
+
self.class.get_field_config(f)[:sub_fields] + ["_destroy"]
|
453
|
+
)
|
447
454
|
end
|
448
455
|
|
449
456
|
# Associations are not allowed to be submitted in their bare form.
|
@@ -451,6 +458,7 @@ module RESTFramework::Mixins::BaseModelControllerMixin
|
|
451
458
|
}.compact
|
452
459
|
@_get_allowed_parameters += variations
|
453
460
|
@_get_allowed_parameters << hash_variations
|
461
|
+
@_get_allowed_parameters << alt_hash_variations
|
454
462
|
return @_get_allowed_parameters
|
455
463
|
end
|
456
464
|
|
@@ -520,14 +528,22 @@ module RESTFramework::Mixins::BaseModelControllerMixin
|
|
520
528
|
#
|
521
529
|
# rubocop:enable Layout/LineLength
|
522
530
|
self.class.get_model.attachment_reflections.keys.each do |k|
|
523
|
-
next unless (body_params[k].is_a?(String) && body_params[k].match?(BASE64_REGEX)) ||
|
524
|
-
(body_params[k].is_a?(Array) && body_params[k].all? { |v|
|
525
|
-
v.is_a?(String) && v.match?(BASE64_REGEX)
|
526
|
-
})
|
527
|
-
|
528
531
|
if body_params[k].is_a?(Array)
|
529
|
-
body_params[k] = body_params[k].map { |v|
|
530
|
-
|
532
|
+
body_params[k] = body_params[k].map { |v|
|
533
|
+
if v.is_a?(String)
|
534
|
+
BASE64_TRANSLATE.call(k, v)
|
535
|
+
elsif v.is_a?(ActionController::Parameters)
|
536
|
+
if v[:io].is_a?(String)
|
537
|
+
v[:io] = StringIO.new(Base64.decode64(v[:io]))
|
538
|
+
end
|
539
|
+
v
|
540
|
+
end
|
541
|
+
}
|
542
|
+
elsif body_params[k].is_a?(ActionController::Parameters)
|
543
|
+
if body_params[k][:io].is_a?(String)
|
544
|
+
body_params[k][:io] = StringIO.new(Base64.decode64(body_params[k][:io]))
|
545
|
+
end
|
546
|
+
elsif body_params[k].is_a?(String)
|
531
547
|
body_params[k] = BASE64_TRANSLATE.call(k, body_params[k])
|
532
548
|
end
|
533
549
|
end
|
data/lib/rest_framework/utils.rb
CHANGED
@@ -159,9 +159,10 @@ module RESTFramework::Utils
|
|
159
159
|
)
|
160
160
|
parsed_fields += fields_hash[:include].map(&:to_s) if fields_hash[:include]
|
161
161
|
parsed_fields -= fields_hash[:exclude].map(&:to_s) if fields_hash[:exclude]
|
162
|
+
parsed_fields -= fields_hash[:except].map(&:to_s) if fields_hash[:except]
|
162
163
|
|
163
164
|
# Warn for any unknown keys.
|
164
|
-
(fields_hash.keys - [:only, :include, :exclude]).each do |k|
|
165
|
+
(fields_hash.keys - [:only, :except, :include, :exclude]).each do |k|
|
165
166
|
Rails.logger.warn("RRF: Unknown key in fields hash: #{k}")
|
166
167
|
end
|
167
168
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest_framework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregory N. Schmit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|