feat!: move msteams to plugin

This commit is contained in:
Peter Steinberger
2026-01-16 02:58:08 +00:00
parent dae34f3a61
commit d9f9e93dee
73 changed files with 711 additions and 243 deletions

View File

@@ -0,0 +1,30 @@
import {
type MSTeamsPoll,
type MSTeamsPollStore,
normalizeMSTeamsPollSelections,
} from "./polls.js";
export function createMSTeamsPollStoreMemory(initial: MSTeamsPoll[] = []): MSTeamsPollStore {
const polls = new Map<string, MSTeamsPoll>();
for (const poll of initial) {
polls.set(poll.id, { ...poll });
}
const createPoll = async (poll: MSTeamsPoll) => {
polls.set(poll.id, { ...poll });
};
const getPoll = async (pollId: string) => polls.get(pollId) ?? null;
const recordVote = async (params: { pollId: string; voterId: string; selections: string[] }) => {
const poll = polls.get(params.pollId);
if (!poll) return null;
const normalized = normalizeMSTeamsPollSelections(poll, params.selections);
poll.votes[params.voterId] = normalized;
poll.updatedAt = new Date().toISOString();
polls.set(poll.id, poll);
return poll;
};
return { createPoll, getPoll, recordVote };
}