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;
|