Class: Kms::EntrySerializer

Inherits:
ActiveModel::Serializer
  • Object
show all
Defined in:
app/serializers/kms/entry_serializer.rb

Instance Method Summary collapse

Instance Method Details

#valuesObject

OPTIMIZE



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/serializers/kms/entry_serializer.rb', line 8

def values
  values_with_urls = object.values.dup
  # prepare file fields
  object.model.fields.file_fields.each do |file_field|
    uploader = EntryFileUploader.new(OpenStruct.new(model: object, field_name: file_field.liquor_name))
    uploader.retrieve_from_store! values_with_urls[file_field.liquor_name]
    values_with_urls[file_field.liquor_name] = { url: uploader.file.exists? ? uploader.url : nil }
  end
  # prepare checkbox fields - cause PostgreSQL json stored as strings
  object.model.fields.checkbox_fields.each do |checkbox_field|
    values_with_urls[checkbox_field.liquor_name] = values_with_urls[checkbox_field.liquor_name] == 'true'
  end
  # prepare checkbox fields - cause PostgreSQL json stored as strings
  object.model.fields.date_fields.each do |date_field|
    values_with_urls[date_field.liquor_name] = Date.parse(values_with_urls[date_field.liquor_name])
  end
  values_with_urls
end