Skip to content

Commit 8df351a

Browse files
committed
[*] Records Display - Restrict record data serialization based the schema collection fields in the #show action
1 parent 1d76f8f commit 8df351a

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Change Log
22

33
## [Unreleased]
4+
### Fixed
5+
- Records Display - Restrict record data serialization based the schema collection fields in the #show action.
46

57
## RELEASE 2.15.6 - 2019-02-28
68
### Fixed

app/controllers/forest_liana/resources_controller.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ def show
8383
getter = ForestLiana::ResourceGetter.new(@resource, params)
8484
getter.perform
8585

86-
render serializer: nil, json:
87-
serialize_model(get_record(getter.record), include: includes(getter))
86+
render serializer: nil, json: render_record_jsonapi(getter)
8887
rescue => error
8988
FOREST_LOGGER.error "Record Show error: #{error}\n#{format_stacktrace(error)}"
9089
internal_server_error
@@ -189,6 +188,18 @@ def get_record record
189188
is_sti_model? ? record.becomes(@resource) : record
190189
end
191190

191+
def render_record_jsonapi getter
192+
collection_fields = getter.collection.fields.map { |field| field[:field] }
193+
fields_to_serialize = {
194+
ForestLiana.name_for(@resource) => collection_fields.join(',')
195+
}
196+
197+
serialize_model(get_record(getter.record), {
198+
include: includes(getter),
199+
fields: fields_to_serialize
200+
})
201+
end
202+
192203
def render_jsonapi getter
193204
records = getter.records.map { |record| get_record(record) }
194205
fields_to_serialize = fields_per_model(params[:fields], @resource)

app/services/forest_liana/resource_getter.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module ForestLiana
22
class ResourceGetter < BaseGetter
33
attr_accessor :record
4+
attr_reader :collection
45

56
def initialize(resource, params)
67
@resource = resource

0 commit comments

Comments
 (0)