diff --git a/src/routes/users/@me/index.ts b/src/routes/users/@me/index.ts
index f6b29958..7bd4a486 100644
--- a/src/routes/users/@me/index.ts
+++ b/src/routes/users/@me/index.ts
@@ -11,16 +11,38 @@ router.get("/", async (req: Request, res: Response) => {
res.json(await getPublicUser(req.user_id));
});
+const UserUpdateProjection = {
+ accent_color: true,
+ avatar: true,
+ banner: true,
+ bio: true,
+ bot: true,
+ discriminator: true,
+ email: true,
+ flags: true,
+ id: true,
+ locale: true,
+ mfa_enabled: true,
+ nsfw_alllowed: true,
+ phone: true,
+ public_flags: true,
+ purchased_flags: true,
+ // token: true, // this isn't saved in the db and needs to be set manually
+ username: true,
+ verified: true
+};
+
router.patch("/", check(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);
+ if (body.avatar) body.avatar = await handleFile(`/avatars/${req.user_id}`, body.avatar as string);
if (body.banner) body.banner = await handleFile(`/banners/${req.user_id}`, body.banner as string);
- const user = await UserModel.findOneAndUpdate({ id: req.user_id }, body, { projection: PublicUserProjection }).exec();
+ const user = await UserModel.findOneAndUpdate({ id: req.user_id }, body, { projection: UserUpdateProjection }).exec();
// TODO: dispatch user update event
res.json(toObject(user));
});
export default router;
+// {"message": "Invalid two-factor code", "code": 60008}
|