summary refs log tree commit diff
path: root/src/api/routes/download
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/routes/download')
-rw-r--r--src/api/routes/download/index.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/api/routes/download/index.ts b/src/api/routes/download/index.ts
new file mode 100644
index 00000000..371c0fd7
--- /dev/null
+++ b/src/api/routes/download/index.ts
@@ -0,0 +1,33 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+import { FieldErrors, Release } from "@fosscord/util";
+
+const router = Router();
+
+/*
+	TODO: Putting the download route in /routes/download.ts doesn't register the route, for some reason
+	But putting it here *does*
+*/
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+	const { platform } = req.query;
+
+	if (!platform) throw FieldErrors({
+		platform: {
+			code: "BASE_TYPE_REQUIRED",
+			message: req.t("common:field.BASE_TYPE_REQUIRED"),
+		}
+	});
+
+	const release = await Release.findOneOrFail({
+		where: {
+			enabled: true,
+			platform: platform as string,
+		},
+		order: { pub_date: "DESC" }
+	});
+
+	res.redirect(release.url);
+});
+
+export default router;