diff --git a/src/routes/attachments.ts b/src/routes/attachments.ts
new file mode 100644
index 00000000..7d09e402
--- /dev/null
+++ b/src/routes/attachments.ts
@@ -0,0 +1,50 @@
+import { Router } from "express";
+import multer from "multer";
+import Snowflake from "../Snowflake";
+
+const multer_ = multer();
+const router = Router();
+
+type Attachment = {
+ filename: string;
+ file: string;
+ id: string;
+ type: string;
+};
+
+router.post("/:filename", multer_.single("attachment"), async (req, res) => {
+ const { buffer, mimetype } = req.file;
+ const { filename } = req.params;
+ const { db } = req.server;
+
+ const File: Attachment = {
+ filename,
+ file: buffer.toString("base64"),
+ id: Snowflake.generate(),
+ type: mimetype,
+ };
+
+ if (!(await db.data.attachments.push(File))) throw new Error("Error uploading file");
+
+ return res.status(201).send({ success: true, message: "attachment uploaded", id: File.id, filename });
+});
+
+router.get("/:hash/:filename", async (req, res) => {
+ const { db } = req.server;
+ const { hash, filename } = req.params;
+
+ const File: Attachment = await db.data.attachments({ id: hash, filename: filename }).get();
+
+ res.set("Content-Type", File.type);
+ return res.send(Buffer.from(File.file, "base64"));
+});
+
+router.delete("/:hash/:filename", async (req, res) => {
+ const { hash, filename } = req.params;
+ const { db } = req.server;
+
+ await db.data.attachments({ id: hash, filename: filename }).delete();
+ return res.send({ success: true, message: "attachment deleted" });
+});
+
+export default router;
diff --git a/src/routes/attachments.ts.disabled b/src/routes/attachments.ts.disabled
deleted file mode 100644
index db1a7efc..00000000
--- a/src/routes/attachments.ts.disabled
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Router } from "express";
-import multer from "multer";
-const multer_ = multer();
-
-const router = Router();
-router.post("/:file", multer_.single("attachment"), async (req, res) => {
- const { buffer } = req.file;
-
- res.set("Content-Type", "image/png");
- res.send(buffer);
-});
-router.get("/:hash/:file", async (req, res) => {
- res.send(`${req.params.hash}/${req.params.file}`);
-});
-router.delete("/:hash/:file", async (req, res) => {
- res.send("remove");
-});
-
-export default router;
|