discourse/app/serializers/queued_post_serializer.rb
Robin Ward b58867b6e9 FEATURE: New 'Reviewable' model to make reviewable items generic
Includes support for flags, reviewable users and queued posts, with REST API
backwards compatibility.

Co-Authored-By: romanrizzi <romanalejandro@gmail.com>
Co-Authored-By: jjaffeux <j.jaffeux@gmail.com>
2019-03-28 12:45:10 -04:00

71 lines
1.2 KiB
Ruby

# Deprecated, should be removed once users have sufficient opportunity to do so
class QueuedPostSerializer < ApplicationSerializer
attributes(
:id,
:queue,
:user_id,
:state,
:topic_id,
:approved_by_id,
:rejected_by_id,
:raw,
:post_options,
:created_at,
:category_id,
:can_delete_user
)
has_one :created_by, serializer: AdminUserListSerializer, root: :users
has_one :topic, serializer: BasicTopicSerializer
def queue
'default'
end
def user_id
object.created_by_id
end
def state
object.status + 1
end
def approved_by_id
who_did(:approved)
end
def rejected_by_id
who_did(:rejected)
end
def raw
object.payload['raw']
end
def post_options
object.payload.except('raw')
end
def can_delete_user
true
end
def include_can_delete_user?
created_by && created_by.trust_level == TrustLevel[0]
end
protected
def who_did(status)
object.
reviewable_histories.
where(
reviewable_history_type: ReviewableHistory.types[:transitioned],
status: Reviewable.statuses[status]
).
order(:created_at)
.last&.created_by_id
end
end