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

40 lines
1.3 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
module Api
module V1
class ProtocolSerializer < ActiveModel::Serializer
2020-08-07 22:51:57 +08:00
include ApplicationHelper
include ActionView::Helpers::TextHelper
include InputSanitizeHelper
type :protocols
attributes :id, :name, :authors, :description, :protocol_type
has_many :protocol_keywords,
2018-10-07 19:28:29 +08:00
key: :keywords,
serializer: ProtocolKeywordSerializer,
class_name: 'ProtocolKeyword',
2021-07-23 17:56:28 +08:00
unless: -> { object.protocol_keywords.blank? }
has_many :steps, serializer: StepSerializer, if: -> { object.steps.any? }
belongs_to :parent, serializer: ProtocolSerializer, if: -> { object.parent.present? }
has_many :linked_my_modules,
key: :linked_tasks,
serializer: TaskSerializer,
class_name: 'MyModule',
if: -> { object.in_repository_published? }
2020-08-07 22:51:57 +08:00
include TimestampableModel
2020-08-07 22:51:57 +08:00
def description
if instance_options[:rte_rendering]
custom_auto_link(object.tinymce_render(:description),
simple_format: false,
tags: %w(img),
team: instance_options[:team])
else
object.description
end
end
end
end
end