🐛 fix entity missing an id (replace .insert with new Entity().save)

This commit is contained in:
Flam3rboy 2021-09-02 21:31:44 +02:00
parent 7eb20464af
commit 11af8531cc
6 changed files with 25 additions and 23 deletions

View File

@ -181,7 +181,7 @@ router.post(
// appearently discord doesn't save the date of birth and just calculate if nsfw is allowed // appearently discord doesn't save the date of birth and just calculate if nsfw is allowed
// if nsfw_allowed is null/undefined it'll require date_of_birth to set it to true/false // if nsfw_allowed is null/undefined it'll require date_of_birth to set it to true/false
const user = { const user = await new User({
created_at: new Date(), created_at: new Date(),
username: adjusted_username, username: adjusted_username,
discriminator, discriminator,
@ -207,8 +207,7 @@ router.post(
}, },
settings: defaultSettings, settings: defaultSettings,
fingerprints: [] fingerprints: []
}; }).save();
await User.insert(user);
return res.json({ token: await generateToken(user.id) }); return res.json({ token: await generateToken(user.id) });
} }

View File

@ -12,24 +12,27 @@ router.post("/", async (req: Request, res: Response) => {
const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: ["owner_id"] }); const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: ["owner_id"] });
if (guild.owner_id !== req.user_id) throw new HTTPError("You are not the owner of this guild", 401); if (guild.owner_id !== req.user_id) throw new HTTPError("You are not the owner of this guild", 401);
await emitEvent({ // do not put everything into promise all, because of "QueryFailedError: SQLITE_CONSTRAINT: FOREIGN KEY constraint failed"
event: "GUILD_DELETE",
data: { await Message.delete({ guild_id }); // messages must be deleted before channel
id: guild_id
},
guild_id: guild_id
} as GuildDeleteEvent);
await Promise.all([ await Promise.all([
Guild.delete({ id: guild_id }),
Role.delete({ guild_id }), Role.delete({ guild_id }),
Channel.delete({ guild_id }), Channel.delete({ guild_id }),
Emoji.delete({ guild_id }), Emoji.delete({ guild_id }),
Invite.delete({ guild_id }), Member.delete({ guild_id }),
Message.delete({ guild_id }), emitEvent({
Member.delete({ guild_id }) event: "GUILD_DELETE",
data: {
id: guild_id
},
guild_id: guild_id
} as GuildDeleteEvent)
]); ]);
await Invite.delete({ guild_id }); // invite must be deleted after channel
await Guild.delete({ id: guild_id }); // guild must be deleted after everything else
return res.sendStatus(204); return res.sendStatus(204);
}); });

View File

@ -53,7 +53,7 @@ router.post("/", check(RoleModifySchema), async (req: Request, res: Response) =>
}; };
await Promise.all([ await Promise.all([
Role.insert(role), new Role(role).save(),
emitEvent({ emitEvent({
event: "GUILD_ROLE_CREATE", event: "GUILD_ROLE_CREATE",
guild_id, guild_id,

View File

@ -21,7 +21,7 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) =
const guild_id = Snowflake.generate(); const guild_id = Snowflake.generate();
const [guild, role] = await Promise.all([ const [guild, role] = await Promise.all([
Guild.insert({ new Guild({
name: body.name, name: body.name,
region: Config.get().regions.default, region: Config.get().regions.default,
owner_id: req.user_id, owner_id: req.user_id,
@ -48,8 +48,8 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) =
welcome_channels: [] welcome_channels: []
}, },
widget_enabled: false widget_enabled: false
}), }).save(),
Role.insert({ new Role({
id: guild_id, id: guild_id,
guild_id: guild_id, guild_id: guild_id,
color: 0, color: 0,
@ -59,7 +59,7 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) =
name: "@everyone", name: "@everyone",
permissions: String("2251804225"), permissions: String("2251804225"),
position: 0 position: 0
}) }).save()
]); ]);
if (!body.channels || !body.channels.length) body.channels = [{ id: "01", type: 0, name: "general" }]; if (!body.channels || !body.channels.length) body.channels = [{ id: "01", type: 0, name: "general" }];

View File

@ -144,7 +144,7 @@ export class Channel extends BaseClass {
}; };
await Promise.all([ await Promise.all([
Channel.insert(channel), new Channel(channel).save(),
!opts?.skipEventEmit !opts?.skipEventEmit
? emitEvent({ ? emitEvent({
event: "CHANNEL_CREATE", event: "CHANNEL_CREATE",

View File

@ -205,7 +205,7 @@ export class Member extends BaseClass {
guild.joined_at = member.joined_at.toISOString(); guild.joined_at = member.joined_at.toISOString();
await Promise.all([ await Promise.all([
Member.insert({ new Member({
...member, ...member,
roles: undefined, roles: undefined,
// read_state: {}, // read_state: {},
@ -218,7 +218,7 @@ export class Member extends BaseClass {
suppress_roles: false, suppress_roles: false,
version: 0, version: 0,
}, },
}), }).save(),
Guild.increment({ id: guild_id }, "member_count", 1), Guild.increment({ id: guild_id }, "member_count", 1),
emitEvent({ emitEvent({
event: "GUILD_MEMBER_ADD", event: "GUILD_MEMBER_ADD",
@ -231,7 +231,7 @@ export class Member extends BaseClass {
} as GuildMemberAddEvent), } as GuildMemberAddEvent),
emitEvent({ emitEvent({
event: "GUILD_CREATE", event: "GUILD_CREATE",
data: { ...guild, members: [...guild.members, member] }, data: { ...guild, members: [...guild.members, { ...member, user }] },
user_id, user_id,
} as GuildCreateEvent), } as GuildCreateEvent),
]); ]);