summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/renderer/vote.ts
blob: 014b76765b8958e29d091f40600f688285b56555 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import config from '../../../config';
import { INote } from '../../../models/note';
import { IRemoteUser, ILocalUser } from '../../../models/user';
import { IPollVote } from '../../../models/poll-vote';

export default async function renderVote(user: ILocalUser, vote: IPollVote, pollNote: INote, pollOwner: IRemoteUser): Promise<any> {
	return {
		id: `${config.url}/users/${user._id}#votes/${vote._id}/activity`,
		actor: `${config.url}/users/${user._id}`,
		type: 'Create',
		to: [pollOwner.uri],
		published: new Date().toISOString(),
		object: {
			id: `${config.url}/users/${user._id}#votes/${vote._id}`,
			type: 'Note',
			attributedTo: `${config.url}/users/${user._id}`,
			to: [pollOwner.uri],
			inReplyTo: pollNote.uri,
			name: pollNote.poll.choices.find(x => x.id === vote.choice).text
		}
	};
}