Sha256: fbc24267a7fec8a395c461e28c28091597f6610e9dc3a6b49b69e6dca6aab62a

Contents?: true

Size: 963 Bytes

Versions: 1

Compression:

Stored size: 963 Bytes

Contents

module Spree
  module V2
    module Storefront
      class MenuItemSerializer < BaseSerializer
        set_type :menu_item

        attributes :code, :name, :subtitle, :link, :new_window, :lft, :rgt, :depth

        attribute :is_container do |menu_item|
          menu_item.container?
        end

        attribute :is_root do |menu_item|
          menu_item.root?
        end

        attribute :is_child do |menu_item|
          menu_item.child?
        end

        attribute :is_leaf do |menu_item|
          menu_item.leaf?
        end

        has_one :image,
                object_method_name: :icon,
                id_method_name: :icon_id,
                record_type: :image,
                serializer: :image

        belongs_to :parent, record_type: :menu_item, serializer: :menu_item
        belongs_to :linked_resource, polymorphic: true
        has_many   :children, record_type: :menu_item, serializer: :menu_item
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spree_api-4.3.0.rc1 app/serializers/spree/v2/storefront/menu_item_serializer.rb