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