class LearningObjectSerializer < ActiveModel::Serializer cache key: 'learning_object', expires_in: 4.hours, except: [:likes_count, :liked, :reviewed, :complained] def default_mime_type object.default_attachment.try(:mime_type) end def default_attachment_id object.default_attachment.try(:id) end def thumbnail object.default_thumbnail end def object_type object.object_type.try(:name) end def liked object.liked? current_user end def reviewed object.reviewed? current_user end def complained object.complained? current_user end attributes \ :id, :name, :description, :author, :curator, :thumbnail, :object_type, :language, :default_attachment_location, :default_attachment_id, :default_mime_type, :score, :state, :review_average, :link, :software, :license, :liked, :likes_count, :reviewed, :complained, :shares_count, :created_at, :updated_at belongs_to :publisher has_many :tags has_many :subjects has_many :educational_stages has_many :attachments end