1 files changed, 20 insertions, 0 deletions
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;
|