diff --git a/src/api/routes/v0/applications/#id/skus.ts b/src/api/routes/v0/applications/#id/skus.ts
new file mode 100644
index 00000000..2383e6f7
--- /dev/null
+++ b/src/api/routes/v0/applications/#id/skus.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/applications/detectable.ts b/src/api/routes/v0/applications/detectable.ts
new file mode 100644
index 00000000..28ce42da
--- /dev/null
+++ b/src/api/routes/v0/applications/detectable.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ res.send([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/channels/#channel_id/webhooks.ts b/src/api/routes/v0/channels/#channel_id/webhooks.ts
new file mode 100644
index 00000000..737ed6a8
--- /dev/null
+++ b/src/api/routes/v0/channels/#channel_id/webhooks.ts
@@ -0,0 +1,25 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+import {
+ Channel,
+ Config,
+ handleFile,
+ trimSpecial,
+ User,
+ Webhook,
+ WebhookCreateSchema,
+ WebhookType,
+} from "@fosscord/util";
+import { HTTPError } from "lambert-server";
+import { isTextChannel } from "./messages/index";
+import { DiscordApiErrors } from "@fosscord/util";
+import crypto from "crypto";
+
+const router: Router = Router();
+
+//TODO: implement webhooks
+router.get("/", route({}), async (req: Request, res: Response) => {
+ res.json([]);
+});
+
+export default router;
diff --git a/src/api/routes/v0/experiments.ts b/src/api/routes/v0/experiments.ts
new file mode 100644
index 00000000..b2b7d724
--- /dev/null
+++ b/src/api/routes/v0/experiments.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.send({ fingerprint: "", assignments: [], guild_experiments: [] });
+});
+
+export default router;
diff --git a/src/api/routes/v0/guilds/#guild_id/integrations.ts b/src/api/routes/v0/guilds/#guild_id/integrations.ts
new file mode 100644
index 00000000..a8e78062
--- /dev/null
+++ b/src/api/routes/v0/guilds/#guild_id/integrations.ts
@@ -0,0 +1,9 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+const router = Router();
+
+//TODO: implement integrations list
+router.get("/", route({}), async (req: Request, res: Response) => {
+ res.json([]);
+});
+export default router;
diff --git a/src/api/routes/v0/guilds/#guild_id/member-verification.ts b/src/api/routes/v0/guilds/#guild_id/member-verification.ts
new file mode 100644
index 00000000..c2f946b2
--- /dev/null
+++ b/src/api/routes/v0/guilds/#guild_id/member-verification.ts
@@ -0,0 +1,14 @@
+import { Router, Request, Response } from "express";
+import { route } from "@fosscord/api";
+const router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ // TODO: member verification
+
+ res.status(404).json({
+ message: "Unknown Guild Member Verification Form",
+ code: 10068,
+ });
+});
+
+export default router;
diff --git a/src/api/routes/v0/guilds/#guild_id/premium.ts b/src/api/routes/v0/guilds/#guild_id/premium.ts
new file mode 100644
index 00000000..75361ac6
--- /dev/null
+++ b/src/api/routes/v0/guilds/#guild_id/premium.ts
@@ -0,0 +1,10 @@
+import { Router, Request, Response } from "express";
+import { route } from "@fosscord/api";
+const router = Router();
+
+router.get("/subscriptions", route({}), async (req: Request, res: Response) => {
+ // TODO:
+ res.json([]);
+});
+
+export default router;
diff --git a/src/api/routes/v0/guilds/#guild_id/webhooks.ts b/src/api/routes/v0/guilds/#guild_id/webhooks.ts
new file mode 100644
index 00000000..9c4e8a8d
--- /dev/null
+++ b/src/api/routes/v0/guilds/#guild_id/webhooks.ts
@@ -0,0 +1,9 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+const router = Router();
+
+//TODO: implement webhooks
+router.get("/", route({}), async (req: Request, res: Response) => {
+ res.json([]);
+});
+export default router;
diff --git a/src/api/routes/v0/oauth2/tokens.ts b/src/api/routes/v0/oauth2/tokens.ts
new file mode 100644
index 00000000..bd284221
--- /dev/null
+++ b/src/api/routes/v0/oauth2/tokens.ts
@@ -0,0 +1,10 @@
+import { Router, Request, Response } from "express";
+import { route } from "@fosscord/api";
+const router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ res.json([]);
+});
+
+export default router;
diff --git a/src/api/routes/v0/outbound-promotions.ts b/src/api/routes/v0/outbound-promotions.ts
new file mode 100644
index 00000000..411e95bf
--- /dev/null
+++ b/src/api/routes/v0/outbound-promotions.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/science.ts b/src/api/routes/v0/science.ts
new file mode 100644
index 00000000..8556a3ad
--- /dev/null
+++ b/src/api/routes/v0/science.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.post("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.sendStatus(204);
+});
+
+export default router;
diff --git a/src/api/routes/v0/stage-instances.ts b/src/api/routes/v0/stage-instances.ts
new file mode 100644
index 00000000..411e95bf
--- /dev/null
+++ b/src/api/routes/v0/stage-instances.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/teams.ts b/src/api/routes/v0/teams.ts
new file mode 100644
index 00000000..7ce3abcb
--- /dev/null
+++ b/src/api/routes/v0/teams.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ res.send([]);
+});
+
+export default router;
diff --git a/src/api/routes/v0/template.ts.disabled b/src/api/routes/v0/template.ts.disabled
new file mode 100644
index 00000000..fcc59ef4
--- /dev/null
+++ b/src/api/routes/v0/template.ts.disabled
@@ -0,0 +1,11 @@
+//TODO: this is a template for a generic route
+
+import { Router, Request, Response } from "express";
+import { route } from "@fosscord/api";
+const router = Router();
+
+router.get("/",route({}), async (req: Request, res: Response) => {
+ res.json({});
+});
+
+export default router;
diff --git a/src/api/routes/v0/track.ts b/src/api/routes/v0/track.ts
new file mode 100644
index 00000000..8556a3ad
--- /dev/null
+++ b/src/api/routes/v0/track.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.post("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.sendStatus(204);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/activities/statistics/applications.ts b/src/api/routes/v0/users/@me/activities/statistics/applications.ts
new file mode 100644
index 00000000..014df8af
--- /dev/null
+++ b/src/api/routes/v0/users/@me/activities/statistics/applications.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/affinities/guilds.ts b/src/api/routes/v0/users/@me/affinities/guilds.ts
new file mode 100644
index 00000000..8d744744
--- /dev/null
+++ b/src/api/routes/v0/users/@me/affinities/guilds.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.status(200).send({ guild_affinities: [] });
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/affinities/users.ts b/src/api/routes/v0/users/@me/affinities/users.ts
new file mode 100644
index 00000000..6d4e4991
--- /dev/null
+++ b/src/api/routes/v0/users/@me/affinities/users.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.status(200).send({ user_affinities: [], inverse_user_affinities: [] });
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/applications/#app_id/entitlements.ts b/src/api/routes/v0/users/@me/applications/#app_id/entitlements.ts
new file mode 100644
index 00000000..411e95bf
--- /dev/null
+++ b/src/api/routes/v0/users/@me/applications/#app_id/entitlements.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/billing/country-code.ts b/src/api/routes/v0/users/@me/billing/country-code.ts
new file mode 100644
index 00000000..33d40796
--- /dev/null
+++ b/src/api/routes/v0/users/@me/billing/country-code.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ res.json({ country_code: "US" }).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/billing/payment-sources.ts b/src/api/routes/v0/users/@me/billing/payment-sources.ts
new file mode 100644
index 00000000..014df8af
--- /dev/null
+++ b/src/api/routes/v0/users/@me/billing/payment-sources.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/billing/subscriptions.ts b/src/api/routes/v0/users/@me/billing/subscriptions.ts
new file mode 100644
index 00000000..411e95bf
--- /dev/null
+++ b/src/api/routes/v0/users/@me/billing/subscriptions.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/connections.ts b/src/api/routes/v0/users/@me/connections.ts
new file mode 100644
index 00000000..411e95bf
--- /dev/null
+++ b/src/api/routes/v0/users/@me/connections.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/devices.ts b/src/api/routes/v0/users/@me/devices.ts
new file mode 100644
index 00000000..8556a3ad
--- /dev/null
+++ b/src/api/routes/v0/users/@me/devices.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.post("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.sendStatus(204);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/entitlements.ts b/src/api/routes/v0/users/@me/entitlements.ts
new file mode 100644
index 00000000..341e2b4c
--- /dev/null
+++ b/src/api/routes/v0/users/@me/entitlements.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/gifts", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/guilds/premium/subscription-slots.ts b/src/api/routes/v0/users/@me/guilds/premium/subscription-slots.ts
new file mode 100644
index 00000000..014df8af
--- /dev/null
+++ b/src/api/routes/v0/users/@me/guilds/premium/subscription-slots.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.json([]).status(200);
+});
+
+export default router;
diff --git a/src/api/routes/v0/users/@me/library.ts b/src/api/routes/v0/users/@me/library.ts
new file mode 100644
index 00000000..7ac13bae
--- /dev/null
+++ b/src/api/routes/v0/users/@me/library.ts
@@ -0,0 +1,11 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ res.status(200).send([]);
+});
+
+export default router;
|