1
0
mirror of https://github.com/funamitech/mastodon synced 2024-12-05 18:28:50 +09:00
YuruToot/app/serializers/activitypub/vote_serializer.rb
ThibG 833ffce2df Store remote votes URI (#10158)
* Store remote votes URI

* Add spec for accepting remote votes

* Make poll vote id generation work the same way as follows
2019-03-04 22:51:23 +01:00

53 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class ActivityPub::VoteSerializer < ActiveModel::Serializer
class NoteSerializer < ActiveModel::Serializer
attributes :id, :type, :name, :attributed_to,
:in_reply_to, :to
def id
ActivityPub::TagManager.instance.uri_for(object) || [ActivityPub::TagManager.instance.uri_for(object.account), '#votes/', object.id].join
end
def type
'Note'
end
def name
object.poll.options[object.choice.to_i]
end
def attributed_to
ActivityPub::TagManager.instance.uri_for(object.account)
end
def in_reply_to
ActivityPub::TagManager.instance.uri_for(object.poll.status)
end
def to
ActivityPub::TagManager.instance.uri_for(object.poll.account)
end
end
attributes :id, :type, :actor, :to
has_one :object, serializer: ActivityPub::VoteSerializer::NoteSerializer
def id
[ActivityPub::TagManager.instance.uri_for(object.account), '#votes/', object.id, '/activity'].join
end
def type
'Create'
end
def actor
ActivityPub::TagManager.instance.uri_for(object.account)
end
def to
ActivityPub::TagManager.instance.uri_for(object.poll.account)
end
end