summary refs log tree commit diff
path: root/api/src/routes
diff options
context:
space:
mode:
authorSamuel <34555296+Flam3rboy@users.noreply.github.com>2021-12-20 14:56:53 +0100
committerGitHub <noreply@github.com>2021-12-20 14:56:53 +0100
commitdc9c18411e0bdebfdb268ff2786f876b243aeab1 (patch)
treeae18c32a582c965f7ec2cc784fc9b2904e6215c1 /api/src/routes
parentMerge pull request #539 from TimSchweiz/master (diff)
parentUpdate downloads.ts (diff)
downloadserver-dc9c18411e0bdebfdb268ff2786f876b243aeab1.tar.xz
Merge pull request #540 from Thesourtimes/master
General work on API
Diffstat (limited to '')
-rw-r--r--api/src/routes/downloads.ts20
-rw-r--r--api/src/routes/guild-recommendations.ts20
-rw-r--r--api/src/routes/updates.ts20
3 files changed, 60 insertions, 0 deletions
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;