class Backframe::Response::Adapter::Json
Public Class Methods
render(collection, fields)
click to toggle source
# File lib/backframe/response/adapter/json.rb, line 13 def render(collection, fields) data = { records: [], total_records: collection.total_records, current_page: collection.current_page, total_pages: collection.total_pages } collection.records.each do |item| serialized = ActiveModelSerializers::SerializableResource.new(item).serializable_hash if fields.any? record = {} fields.array.each do |field| obj = record parts = field[:key].split(".") value = Backframe::Response::Record.get_value(serialized, field[:key]) parts.each_with_index do |part, index| if index == parts.size - 1 obj[part.to_sym] = value else obj[part.to_sym] ||= {} obj = obj[part.to_sym] end end end data[:records] << record else data[:records] << serialized end end data end