Await guild creation to fix a race condition

`Promise.all(...)` runs these simultaneously, yet role depends on the
guild to be created first. This can lead to a race condition. I've
awaited role creation too because the call to `Member.addToGuild(...)`
relies on the role to be created.
This commit is contained in:
Zane Helton 2025-06-28 18:02:54 -04:00 committed by Madeline
parent 4772731a17
commit ff692c19b7

View File

@ -140,25 +140,24 @@ router.post(
const guild_id = Snowflake.generate();
const [guild] = await Promise.all([
Guild.create({
...body,
...template.serialized_source_guild,
id: guild_id,
owner_id: req.user_id,
}).save(),
Role.create({
id: guild_id,
guild_id: guild_id,
color: 0,
hoist: false,
managed: true,
mentionable: true,
name: "@everyone",
permissions: BigInt("2251804225").toString(), // TODO: where did this come from?
position: 0,
}).save(),
]);
const guild = await Guild.create({
...body,
...template.serialized_source_guild,
id: guild_id,
owner_id: req.user_id,
}).save();
await Role.create({
id: guild_id,
guild_id: guild_id,
color: 0,
hoist: false,
managed: true,
mentionable: true,
name: "@everyone",
permissions: BigInt("2251804225").toString(), // TODO: where did this come from?
position: 0,
}).save();
await Member.addToGuild(req.user_id, guild_id);