From a533eeaf54475ef304af2a3b47913c802df0d32f Mon Sep 17 00:00:00 2001 From: adueck Date: Tue, 11 Oct 2022 14:24:44 +0500 Subject: [PATCH] add REALLY BASIC ability to receive feedback --- account/src/lib/couch-db.ts | 5 +++++ account/src/routers/feedback-router.ts | 28 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 account/src/routers/feedback-router.ts diff --git a/account/src/lib/couch-db.ts b/account/src/lib/couch-db.ts index ffd345e..73c0d0c 100644 --- a/account/src/lib/couch-db.ts +++ b/account/src/lib/couch-db.ts @@ -6,8 +6,13 @@ import * as T from "../../../website/src/types/account-types"; const nano = Nano(env.couchDbURL); const usersDb = nano.db.use("lingdocs-users"); +const feedbackDb = nano.db.use("feedback"); const userDbPrefix = "userdb-"; +export async function addFeedback(feedback: any) { + await usersDb.insert(feedback); +} + export function updateLastLogin(user: T.LingdocsUser): T.LingdocsUser { return { ...user, diff --git a/account/src/routers/feedback-router.ts b/account/src/routers/feedback-router.ts new file mode 100644 index 0000000..819e376 --- /dev/null +++ b/account/src/routers/feedback-router.ts @@ -0,0 +1,28 @@ +import express, { Response } from "express"; +import * as T from "../../../website/src/types/account-types"; +import { addFeedback } from "../lib/couch-db"; +// import env from "../lib/env-vars"; + +// TODO: ADD PROPER ERROR HANDLING THAT WILL RETURN JSON ALWAYS + +function sendResponse(res: Response, payload: T.APIResponse) { + return res.send(payload); +} + +const feedbackRouter = express.Router(); + +/** + * receives a piece of feedback + */ +feedbackRouter.put("/", (req, res, next) => { + if (!req.user) { + addFeedback({ + user: req.user, + feedback: req.body, + }); + } + // @ts-ignore; + sendResponse(res, { ok: true, message: "feedback received" }); +}); + +export default feedbackRouter;