From c92670b6e0b6a4172ffb20d32ae3a3c129f37907 Mon Sep 17 00:00:00 2001 From: MathMan05 Date: Tue, 18 Nov 2025 11:31:36 -0600 Subject: [PATCH] member count fixes --- assets/openapi.json | Bin 1384175 -> 1384128 bytes assets/schemas.json | Bin 4238449 -> 4238410 bytes src/api/routes/users/#user_id/delete.ts | 13 +++---------- src/api/routes/users/@me/delete.ts | 11 +++-------- src/api/routes/users/@me/guilds.ts | 2 +- src/util/entities/Member.ts | 2 +- 6 files changed, 8 insertions(+), 20 deletions(-) diff --git a/assets/openapi.json b/assets/openapi.json index 75f7f590d7a64e7d51f4eaab1a2c0f82031b22ba..1805c9a326ec82d84970ca9c6db26193f287c436 100644 GIT binary patch delta 67 zcmaFAH{`(HkcJk<7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~EqvZx?NwcTK+F%s0zfPX P#6mzUyuGSRq;v`ZTk08g delta 82 zcmX@GH{|`^kcJk<7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~EqvZx)0a)>6r1kA#LhYW eb~~RyyLT5K5c2~uh%E@jLO?9M-MdSqbP52-NF5&l diff --git a/assets/schemas.json b/assets/schemas.json index ad620bfe3f9a4ec18d1de5f7aa3a531240e099c4..a60d85e4fe73f30f807c8eb15b322ca6caf2b656 100644 GIT binary patch delta 157 zcmWN=ITFDD06@_ZTVmgL5rWva*oC;4#+ZKwxkzT5K%-1W=Lj?!4R7YX?ZY13RP;T)M?N}qeYtzU3&BxFl5A- m2|80|%vrEx#hMKUTXwdoJJ$0mE7t2P8D~x0Up|g`c>Dllzc}3h delta 167 zcmWN=Hx7aT06@`*4Q$wZ!G^tJZ+IIAFJR(g%s+!1!^OlqxR@~MEpT?xm%PX8EPVb? z*buPez=;btA`%|F`0x`zCP;`d5u(J1lORcoG#Rqw$WuU}NQp8Ps;Jbc)1XO Member.removeFromGuild(member.id, member.guild_id)), User.delete({ id: req.params.user_id })]); // TODO: respect intents as USER_DELETE has potential to cause privacy issues await emitEvent({ diff --git a/src/api/routes/users/@me/delete.ts b/src/api/routes/users/@me/delete.ts index ac5e31e0..43861181 100644 --- a/src/api/routes/users/@me/delete.ts +++ b/src/api/routes/users/@me/delete.ts @@ -46,10 +46,7 @@ router.post( if (user.data.hash) { // guest accounts can delete accounts without password - correctpass = await bcrypt.compare( - req.body.password, - user.data.hash, - ); + correctpass = await bcrypt.compare(req.body.password, user.data.hash); if (!correctpass) { throw new HTTPError(req.t("auth:login.INVALID_PASSWORD")); } @@ -58,10 +55,8 @@ router.post( // TODO: decrement guild member count if (correctpass) { - await Promise.all([ - User.delete({ id: req.user_id }), - Member.delete({ id: req.user_id }), - ]); + const members = await Member.find({ where: { id: req.user_id } }); + await Promise.all([User.delete({ id: req.user_id }), ...members.map((member) => Member.removeFromGuild(member.id, member.guild_id))]); res.sendStatus(204); } else { diff --git a/src/api/routes/users/@me/guilds.ts b/src/api/routes/users/@me/guilds.ts index 701e6604..641180f3 100644 --- a/src/api/routes/users/@me/guilds.ts +++ b/src/api/routes/users/@me/guilds.ts @@ -77,7 +77,7 @@ router.delete( } await Promise.all([ - Member.delete({ id: req.user_id, guild_id: guild_id }), + Member.removeFromGuild(req.user_id, guild_id), emitEvent({ event: "GUILD_DELETE", data: { diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts index a3b35702..7fc214c8 100644 --- a/src/util/entities/Member.ts +++ b/src/util/entities/Member.ts @@ -178,7 +178,7 @@ export class Member extends BaseClassWithoutId { id: user_id, guild_id, }), - Guild.decrement({ id: guild_id }, "member_count", -1), + Guild.decrement({ id: guild_id }, "member_count", 1), emitEvent({ event: "GUILD_DELETE",