2022-05-11 21:51:26 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class ChecklistItemSerializer < ActiveModel::Serializer
|
2022-06-03 17:52:10 +08:00
|
|
|
include Canaid::Helpers::PermissionsHelper
|
2022-05-11 21:51:26 +08:00
|
|
|
include Rails.application.routes.url_helpers
|
|
|
|
|
|
|
|
attributes :id, :text, :checked, :position, :urls
|
|
|
|
|
|
|
|
def urls
|
2022-06-03 17:52:10 +08:00
|
|
|
return {} if object.destroyed? ||
|
|
|
|
!object.persisted? ||
|
|
|
|
!can_manage_step?(scope[:user] || @instance_options[:user], object.checklist.step)
|
2022-05-11 21:51:26 +08:00
|
|
|
|
|
|
|
{
|
|
|
|
update_url: step_checklist_checklist_item_path(object.checklist.step, object.checklist, object),
|
|
|
|
delete_url: step_checklist_checklist_item_path(object.checklist.step, object.checklist, object)
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|