2024-03-29 15:47:42 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module GlobalSearch
|
|
|
|
class MyModuleSerializer < ActiveModel::Serializer
|
|
|
|
include Rails.application.routes.url_helpers
|
|
|
|
|
|
|
|
attributes :id, :name, :code, :created_at, :updated_at, :team, :experiment, :archived, :url
|
|
|
|
|
|
|
|
def team
|
|
|
|
{
|
|
|
|
name: object.experiment.project.team.name,
|
2024-05-09 19:25:15 +08:00
|
|
|
url: dashboard_path(team: object.team)
|
2024-03-29 15:47:42 +08:00
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
def experiment
|
2024-05-09 19:25:15 +08:00
|
|
|
archived = object.experiment.archived_branch?
|
2024-03-29 15:47:42 +08:00
|
|
|
{
|
|
|
|
name: object.experiment.name,
|
2024-05-09 19:25:15 +08:00
|
|
|
url: my_modules_experiment_path(object.experiment.id, view_mode: view_mode(archived)),
|
|
|
|
archived: archived
|
2024-03-29 15:47:42 +08:00
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
def created_at
|
|
|
|
I18n.l(object.created_at, format: :full_date)
|
|
|
|
end
|
|
|
|
|
|
|
|
def updated_at
|
|
|
|
I18n.l(object.updated_at, format: :full_date)
|
|
|
|
end
|
|
|
|
|
2024-05-09 19:25:15 +08:00
|
|
|
def archived
|
|
|
|
object.archived_branch?
|
|
|
|
end
|
|
|
|
|
2024-03-29 15:47:42 +08:00
|
|
|
def url
|
2024-05-09 19:25:15 +08:00
|
|
|
protocols_my_module_path(object.id, view_mode: view_mode(archived))
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def view_mode(archived)
|
|
|
|
archived ? 'archived' : 'active'
|
2024-03-29 15:47:42 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|