scinote-web/app/serializers/api/v1/inventory_cell_serializer.rb

37 lines
1,000 B
Ruby

# frozen_string_literal: true
module Api
module V1
class InventoryCellSerializer < ActiveModel::Serializer
type :inventory_cells
attributes :id, :data_type, :data
attribute :repository_column_id, key: :column_id
def data_type
type_id = RepositoryColumn
.data_types[object.repository_column.data_type]
I18n.t("api.v1.inventory_data_types.t#{type_id}")
end
def data
value =
case object.value_type
when 'RepositoryTextValue'
object.repository_text_value
when 'RepositoryDateValue'
object.repository_date_value
when 'RepositoryListValue'
object.repository_list_value
when 'RepositoryAssetValue'
object.repository_list_value
end
ActiveModelSerializers::SerializableResource.new(
value,
namespace: Api::V1,
adapter: :attribute
).as_json
end
end
end
end