Files
2026-07-26 18:25:37 +09:00

24 lines
786 B
JavaScript

export class PollConverter {
static encode(p, noteId, emojis) {
const now = new Date();
const count = p.choices.reduce((sum, choice)=>sum + choice.votes, 0);
return {
id: noteId,
expires_at: p.expiresAt?.toISOString() ?? null,
expired: p.expiresAt == null ? false : now > p.expiresAt,
multiple: p.multiple,
votes_count: count,
options: p.choices.map((c)=>this.encodeChoice(c)),
emojis: emojis,
voted: p.choices.some((c)=>c.isVoted),
own_votes: p.choices.filter((c)=>c.isVoted).map((c)=>p.choices.indexOf(c))
};
}
static encodeChoice(c) {
return {
title: c.text,
votes_count: c.votes
};
}
}