1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-11-10 20:52:42 +01:00

🐛 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
// 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) });
}

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"] });
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);
});

View File

@ -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,

View File

@ -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" }];

View File

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

View File

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