From d53a9ed23fcf61cdb5094e52255ace9b3a33e170 Mon Sep 17 00:00:00 2001 From: Mathias Wagner <germannewsmaker@gmail.com> Date: Sun, 22 Jan 2023 18:04:27 +0100 Subject: [PATCH] Created the key.ts router --- src/routes/v1/key.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/routes/v1/key.ts diff --git a/src/routes/v1/key.ts b/src/routes/v1/key.ts new file mode 100644 index 0000000..44128fb --- /dev/null +++ b/src/routes/v1/key.ts @@ -0,0 +1,31 @@ +import { Request, Response, Router } from "express"; +import { createKey, deleteKey, listKeys } from "@controller/key"; +import { validateSchema } from "@utils/error"; +import { keyCreationValidation } from "./validations/key"; + +const app: Router = Router(); + +app.get("/:projectId/list", async (req: Request, res: Response) => { + const keys = await listKeys(String(req.user?._id), req.params.projectId); + if ("code" in keys) return res.json(keys); + + res.json(keys); +}); + +app.put("/:projectId", async (req: Request, res: Response) => { + if (validateSchema(res, keyCreationValidation, req.body)) return; + + const key = await createKey(String(req.user?._id), req.params.projectId, req.body); + if ("code" in key) return res.json(key); + + res.json({ message: "Your key has been successfully created", token: key.token }); +}); + +app.delete("/:projectId/:keyId", async (req: Request, res: Response) => { + const keyError = await deleteKey(String(req.user?._id), req.params.projectId, req.params.keyId); + if (keyError) return res.json(keyError); + + res.json({message: "The provided key has been successfully deleted"}); +}); + +export default app; \ No newline at end of file