diff options
author | Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> | 2021-09-02 21:31:44 +0200 |
---|---|---|
committer | Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> | 2021-09-02 21:31:44 +0200 |
commit | 4c4bc248a5456e95b11102ee293fc5e7b37a83fa (patch) | |
tree | 984b7b8c6528d3a1a4bddeb81a2101e6258906c3 /api | |
parent | Merge branch 'master' of https://github.com/fosscord/fosscord-api (diff) | |
download | server-4c4bc248a5456e95b11102ee293fc5e7b37a83fa.tar.xz |
:bug: fix entity missing an id (replace .insert with new Entity().save)
Diffstat (limited to 'api')
-rw-r--r-- | api/src/routes/auth/register.ts | 5 | ||||
-rw-r--r-- | api/src/routes/guilds/#guild_id/delete.ts | 25 | ||||
-rw-r--r-- | api/src/routes/guilds/#guild_id/roles.ts | 2 | ||||
-rw-r--r-- | api/src/routes/guilds/index.ts | 8 |
4 files changed, 21 insertions, 19 deletions
diff --git a/api/src/routes/auth/register.ts b/api/src/routes/auth/register.ts index 8bcecda1..19c9c70f 100644 --- a/api/src/routes/auth/register.ts +++ b/api/src/routes/auth/register.ts @@ -181,7 +181,7 @@ router.post( // 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 - const user = { + const user = await new User({ created_at: new Date(), username: adjusted_username, discriminator, @@ -207,8 +207,7 @@ router.post( }, settings: defaultSettings, fingerprints: [] - }; - await User.insert(user); + }).save(); return res.json({ token: await generateToken(user.id) }); } diff --git a/api/src/routes/guilds/#guild_id/delete.ts b/api/src/routes/guilds/#guild_id/delete.ts index 043260e9..bbbd1fa4 100644 --- a/api/src/routes/guilds/#guild_id/delete.ts +++ b/api/src/routes/guilds/#guild_id/delete.ts @@ -12,24 +12,27 @@ router.post("/", async (req: Request, res: Response) => { 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); - await emitEvent({ - event: "GUILD_DELETE", - data: { - id: guild_id - }, - guild_id: guild_id - } as GuildDeleteEvent); + // do not put everything into promise all, because of "QueryFailedError: SQLITE_CONSTRAINT: FOREIGN KEY constraint failed" + + await Message.delete({ guild_id }); // messages must be deleted before channel await Promise.all([ - Guild.delete({ id: guild_id }), Role.delete({ guild_id }), Channel.delete({ guild_id }), Emoji.delete({ guild_id }), - Invite.delete({ guild_id }), - Message.delete({ guild_id }), - Member.delete({ guild_id }) + Member.delete({ guild_id }), + emitEvent({ + 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); }); diff --git a/api/src/routes/guilds/#guild_id/roles.ts b/api/src/routes/guilds/#guild_id/roles.ts index c3dd92dc..20ab0779 100644 --- a/api/src/routes/guilds/#guild_id/roles.ts +++ b/api/src/routes/guilds/#guild_id/roles.ts @@ -53,7 +53,7 @@ router.post("/", check(RoleModifySchema), async (req: Request, res: Response) => }; await Promise.all([ - Role.insert(role), + new Role(role).save(), emitEvent({ event: "GUILD_ROLE_CREATE", guild_id, diff --git a/api/src/routes/guilds/index.ts b/api/src/routes/guilds/index.ts index 92525317..a87f926c 100644 --- a/api/src/routes/guilds/index.ts +++ b/api/src/routes/guilds/index.ts @@ -21,7 +21,7 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) = const guild_id = Snowflake.generate(); const [guild, role] = await Promise.all([ - Guild.insert({ + new Guild({ name: body.name, region: Config.get().regions.default, owner_id: req.user_id, @@ -48,8 +48,8 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) = welcome_channels: [] }, widget_enabled: false - }), - Role.insert({ + }).save(), + new Role({ id: guild_id, guild_id: guild_id, color: 0, @@ -59,7 +59,7 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) = name: "@everyone", permissions: String("2251804225"), position: 0 - }) + }).save() ]); if (!body.channels || !body.channels.length) body.channels = [{ id: "01", type: 0, name: "general" }]; |