Class: CommandTower::Serializers::Admin::Workspace::ManifestSerializer

Inherits:
CommandTower::Serializers::ApplicationSerializer show all
Defined in:
app/serializers/command_tower/serializers/admin/workspace/manifest_serializer.rb

Class Method Summary collapse

Methods inherited from CommandTower::Serializers::ApplicationSerializer

iso8601, map_serialize

Class Method Details

.serialize(tools) ⇒ Object



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

def self.serialize(tools)
  {
    tools: Array(tools).map do |tool|
      payload = {
        id: tool.fetch(:id),
        label: tool.fetch(:label),
        description: tool.fetch(:description),
        route: tool.fetch(:route),
        group: tool.fetch(:group),
        sortOrder: tool.fetch(:sort_order),
        icon: tool[:icon]
      }
      payload[:scope] = serialize_scope(tool[:scope]) if tool.key?(:scope)
      payload[:scopeOptions] = serialize_scope_options(tool[:scope_options]) if tool.key?(:scope_options)
      payload[:availability] = serialize_availability(tool[:availability]) if tool.key?(:availability)
      payload
    end
  }
end