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;