diff --git a/server/src/endpoints/polls/list.ts b/server/src/endpoints/polls/list.ts new file mode 100644 index 0000000..6645f8e --- /dev/null +++ b/server/src/endpoints/polls/list.ts @@ -0,0 +1,26 @@ +import { Request, ResponseToolkit } from "@hapi/hapi"; +import { log, twitchAuths } from "~/main"; +import boom from "@hapi/boom"; + +export default { + method: `GET`, path: `/twitch/{user}/poll`, + options: { auth: false }, + async handler(request: Request, h: ResponseToolkit): Promise { + log.debug(`Listing all Twitch polls`); + let user = request.params.user; + + // Assert user existance + if (twitchAuths[user] == null) { + throw boom.notFound("Invalid user"); + }; + + let auth = twitchAuths[user]; + + try { + let r = await auth.request("GET", `/polls?broadcaster_id=${auth.bid}`); + return h.response(r.data) + } catch (err: any) { + throw boom.internal(err.response.message); + }; + }, +}; \ No newline at end of file