diff --git a/src/api/routes/applications/#id/entitlements.ts b/src/api/routes/applications/#id/entitlements.ts
new file mode 100644
index 00000000..cfcfe40f
--- /dev/null
+++ b/src/api/routes/applications/#id/entitlements.ts
@@ -0,0 +1,12 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ // TODO:
+ //const { exclude_consumed } = req.query;
+ res.status(200).send([]);
+});
+
+export default router;
diff --git a/src/api/routes/applications/detectable.ts b/src/api/routes/applications/detectable.ts
new file mode 100644
index 00000000..28ce42da
--- /dev/null
+++ b/src/api/routes/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/applications/index.ts b/src/api/routes/applications/index.ts
new file mode 100644
index 00000000..033dcc51
--- /dev/null
+++ b/src/api/routes/applications/index.ts
@@ -0,0 +1,34 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util";
+
+const router: Router = Router();
+
+export interface ApplicationCreateSchema {
+ name: string;
+ team_id?: string | number;
+}
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ //TODO
+ let results = await Application.find({where: {owner: {id: req.user_id}}, relations: ["owner", "bot"] });
+ res.json(results).status(200);
+});
+
+router.post("/", route({}), async (req: Request, res: Response) => {
+ const body = req.body as ApplicationCreateSchema;
+ const user = await User.findOne({where: {id: req.user_id}})
+ if(!user) res.status(420);
+ let app = OrmUtils.mergeDeep(new Application(), {
+ name: trimSpecial(body.name),
+ description: "",
+ bot_public: true,
+ owner: user,
+ verify_key: "IMPLEMENTME",
+ flags: 0
+ });
+ await app.save();
+ res.json(app).status(200);
+});
+
+export default router;
\ No newline at end of file
|