scinote-web/app/serializers/api/v1/inventory_column_serializer.rb
ajugo 0a5e93a018
API: add endpoint for creating stock column [SCI-6550] (#3956)
* Add test for repositoty stock column api [SCI-6550]

* Create and update stock column [SCI-6550]

* Change stock unit [SCI-6550]

* Fix hound [SCI-6550]

* Fix on delete [SCI-6550]

* Fix houd [SCI-6550]
2022-04-08 14:09:00 +02:00

49 lines
1.8 KiB
Ruby

# frozen_string_literal: true
module Api
module V1
class InventoryColumnSerializer < ActiveModel::Serializer
type :inventory_columns
attributes :name, :data_type, :metadata
has_many :repository_list_items,
key: :inventory_list_items,
serializer: InventoryListItemSerializer,
class_name: 'RepositoryListItem',
if: (lambda do
object.data_type == 'RepositoryListValue' &&
!instance_options[:hide_list_items]
end)
has_many :repository_checklist_items,
key: :inventory_checklist_items,
serializer: InventoryChecklistItemSerializer,
class_name: 'RepositoryChecklistItem',
if: (lambda do
object.data_type == 'RepositoryChecklistValue' &&
!instance_options[:hide_list_items]
end)
has_many :repository_status_items,
key: :repository_status_items,
serializer: InventoryStatusItemSerializer,
class_name: 'RepositoryStatusItem',
if: (lambda do
object.data_type == 'RepositoryStatusValue' &&
!instance_options[:hide_list_items]
end)
has_many :repository_stock_unit_items,
key: :repository_stock_unit_items,
serializer: InventoryStockUnitItemSerializer,
class_name: 'RepositoryStockUnitItem',
if: (lambda do
object.data_type == 'RepositoryStockValue' &&
!instance_options[:hide_list_items]
end)
include TimestampableModel
def data_type
Extends::API_REPOSITORY_DATA_TYPE_MAPPINGS[object.data_type]
end
end
end
end