From cd2bd05aa7e416259742c635405085de611455ff Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Wed, 13 Oct 2021 21:59:04 -0700 Subject: [PATCH] Accept feedback and forward to Discord --- .../skin-database/api/DiscordEventHandler.ts | 19 +++++++++++++++++++ packages/skin-database/api/app.ts | 3 ++- packages/skin-database/api/router.ts | 18 ++++++++++++++++++ packages/skin-database/package.json | 3 ++- 4 files changed, 41 insertions(+), 2 deletions(-) diff --git a/packages/skin-database/api/DiscordEventHandler.ts b/packages/skin-database/api/DiscordEventHandler.ts index 551f14ac..4311f603 100644 --- a/packages/skin-database/api/DiscordEventHandler.ts +++ b/packages/skin-database/api/DiscordEventHandler.ts @@ -82,6 +82,25 @@ export default class DiscordEventHandler { ); break; } + case "GOT_FEEDBACK": { + const dest = await this.getChannel(Config.FEEDBACK_SKIN_CHANNEL_ID); + const userMessage = action.message + .split("\n") + .map((line) => { + return `> ${line}`; + }) + .join("\n"); + let message = `Feedback:\n\n ${userMessage}`; + if (action.email != null) { + message += `\n\n--${action.email}`; + } + if (action.url != null) { + message += `\n(${action.url})`; + } + + await dest.send(message); + break; + } } } diff --git a/packages/skin-database/api/app.ts b/packages/skin-database/api/app.ts index ea778974..e0f83bc4 100644 --- a/packages/skin-database/api/app.ts +++ b/packages/skin-database/api/app.ts @@ -19,7 +19,8 @@ export type ApiAction = | { type: "ERROR_PROCESSING_UPLOAD"; id: string; message: string } | { type: "CLASSIC_SKIN_UPLOADED"; md5: string } | { type: "MODERN_SKIN_UPLOADED"; md5: string } - | { type: "SKIN_UPLOAD_ERROR"; uploadId: string; message: string }; + | { type: "SKIN_UPLOAD_ERROR"; uploadId: string; message: string } + | { type: "GOT_FEEDBACK"; message: string; email?: string, url?: string }; export type EventHandler = (event: ApiAction) => void; export type Logger = { diff --git a/packages/skin-database/api/router.ts b/packages/skin-database/api/router.ts index f9984e6e..818754f5 100644 --- a/packages/skin-database/api/router.ts +++ b/packages/skin-database/api/router.ts @@ -113,6 +113,24 @@ router.post( }) ); +router.post( + "/feedback", + asyncHandler(async (req, res) => { + const payload = req.body as { + email?: string; + message: string; + url?: string; + }; + req.notify({ + type: "GOT_FEEDBACK", + url: payload.url, + message: payload.message, + email: payload.email, + }); + res.json({ message: "sent" }); + }) +); + router.post( "/skins/status", asyncHandler(async (req, res) => { diff --git a/packages/skin-database/package.json b/packages/skin-database/package.json index 12e75043..4883afe0 100644 --- a/packages/skin-database/package.json +++ b/packages/skin-database/package.json @@ -48,7 +48,8 @@ "fetch-metadata": "ts-node --transpile-only ./cli.ts fetch-metadata", "bot": "ts-node --transpile-only ./discord-bot/index.js", "cli": "ts-node --transpile-only ./cli.ts", - "sync": "ts-node --transpile-only ./tasks/syncWithArchive.ts" + "sync": "ts-node --transpile-only ./tasks/syncWithArchive.ts", + "migrate": "knex migrate:latest" }, "prettier": {}, "devDependencies": {