scinote-web/app/serializers/api/v1/task_serializer.rb
2021-12-27 13:29:03 +01:00

67 lines
1.8 KiB
Ruby

# frozen_string_literal: true
module Api
module V1
class TaskSerializer < ActiveModel::Serializer
include ApplicationHelper
include ActionView::Helpers::TextHelper
include InputSanitizeHelper
type :tasks
attributes :id, :name, :started_on, :due_date, :description, :state, :archived, :status_id, :status_name,
:prev_status_id, :prev_status_name, :next_status_id, :next_status_name, :x, :y
has_many :output_tasks, key: :outputs,
serializer: TaskSerializer,
class_name: 'MyModule'
has_many :input_tasks, key: :inputs,
serializer: TaskSerializer,
class_name: 'MyModule'
has_many :task_comments, key: :comments, serializer: CommentSerializer
include TimestampableModel
def status_id
object.my_module_status_id
end
def status_name
object.my_module_status.name
end
def prev_status_id
object.my_module_status.previous_status&.id
end
def prev_status_name
object.my_module_status.previous_status&.name
end
def next_status_id
object.my_module_status.next_status&.id
end
def next_status_name
object.my_module_status.next_status&.name
end
def output_tasks
object.my_modules
end
def input_tasks
object.my_module_antecessors
end
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