1 files changed, 22 insertions, 5 deletions
diff --git a/api/src/routes/users/@me/index.ts b/api/src/routes/users/@me/index.ts
index 68649215..68723374 100644
--- a/api/src/routes/users/@me/index.ts
+++ b/api/src/routes/users/@me/index.ts
@@ -1,16 +1,33 @@
import { Router, Request, Response } from "express";
import { User, PrivateUserProjection } from "@fosscord/util";
-import { UserModifySchema } from "../../../schema/User";
-import { check } from "../../../util/instanceOf";
-import { handleFile } from "../../../util/cdn";
+import { check, route } from "@fosscord/api";
+import { handleFile } from "@fosscord/api";
const router: Router = Router();
+export interface UserModifySchema {
+ /**
+ * @minLength 1
+ * @maxLength 100
+ */
+ username?: string;
+ avatar?: string | null;
+ /**
+ * @maxLength 1024
+ */
+ bio?: string;
+ accent_color?: number | null;
+ banner?: string | null;
+ password?: string;
+ new_password?: string;
+ code?: string;
+}
+
router.get("/", async (req: Request, res: Response) => {
- res.json(await User.getPublicUser(req.user_id, { select: PrivateUserProjection }));
+ res.json(await User.findOne({ select: PrivateUserProjection, where: { id: req.user_id } }));
});
-router.patch("/", check(UserModifySchema), async (req: Request, res: Response) => {
+router.patch("/", route({ body: "UserModifySchema" }), async (req: Request, res: Response) => {
const body = req.body as UserModifySchema;
if (body.avatar) body.avatar = await handleFile(`/avatars/${req.user_id}`, body.avatar as string);
|