diff --git a/api/src/routes/downloads.ts b/api/src/routes/downloads.ts
new file mode 100644
index 00000000..ad78b62f
--- /dev/null
+++ b/api/src/routes/downloads.ts
@@ -0,0 +1,20 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+import { Relase, Config } from "@fosscord/util";
+
+const router = Router();
+
+router.get("/:branch", route({}), async (req: Request, res: Response) => {
+ const { client } = Config.get();
+ const { branch } = req.params;
+ const { platform } = req.query;
+ //TODO
+
+ if(!platform || !["linux", "osx", "win"].includes(platform.toString())) return res.status(404)
+
+ const relase = await Relase.findOneOrFail({ name: client.relases.upstreamVersion });
+
+ res.redirect(relase[`win_url`]);
+});
+
+export default router;
diff --git a/api/src/routes/guild-recommendations.ts b/api/src/routes/guild-recommendations.ts
new file mode 100644
index 00000000..503b19b7
--- /dev/null
+++ b/api/src/routes/guild-recommendations.ts
@@ -0,0 +1,20 @@
+import { Guild, Config } from "@fosscord/util";
+
+import { Router, Request, Response } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ const { limit, personalization_disabled } = req.params;
+ var showAllGuilds = Config.get().guild.showAllGuildsInDiscovery;
+ // ! this only works using SQL querys
+ // TODO: implement this with default typeorm query
+ // const guilds = await Guild.find({ where: { features: "DISCOVERABLE" } }); //, take: Math.abs(Number(limit)) });
+ const guilds = showAllGuilds
+ ? await Guild.find({ take: Math.abs(Number(limit || 20)) })
+ : await Guild.find({ where: `"features" LIKE '%COMMUNITY%'`, take: Math.abs(Number(limit || 100)) });
+ res.send({ recommended_guilds: guilds });
+});
+
+export default router;
diff --git a/api/src/routes/updates.ts b/api/src/routes/updates.ts
new file mode 100644
index 00000000..4682ce7c
--- /dev/null
+++ b/api/src/routes/updates.ts
@@ -0,0 +1,20 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+import { Config, Relase } from "@fosscord/util";
+
+const router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ const { client } = Config.get();
+
+ const relase = await Relase.findOneOrFail({ name: client.relases.upstreamVersion})
+
+ res.json({
+ name: relase.name,
+ pub_date: relase.pub_date,
+ url: relase.url,
+ notes: relase.notes
+ });
+});
+
+export default router;
|