fucking postgres

This commit is contained in:
Madeline 2023-10-04 23:48:00 +11:00
parent 6c4023724f
commit 6bf4637a03
No known key found for this signature in database
GPG Key ID: 1958E017C36F2E47
7 changed files with 27 additions and 24 deletions

View File

@ -98,11 +98,11 @@ router.patch(
const guild = await Guild.findOneOrFail({ const guild = await Guild.findOneOrFail({
where: { id: guild_id }, where: { id: guild_id },
select: { channelOrdering: true }, select: { channel_ordering: true },
}); });
// The channels not listed for this query // The channels not listed for this query
const notMentioned = guild.channelOrdering.filter( const notMentioned = guild.channel_ordering.filter(
(x) => !body.find((c) => c.id == x), (x) => !body.find((c) => c.id == x),
); );
@ -159,7 +159,10 @@ router.patch(
}), }),
); );
await Guild.update({ id: guild_id }, { channelOrdering: notMentioned }); await Guild.update(
{ id: guild_id },
{ channel_ordering: notMentioned },
);
return res.sendStatus(204); return res.sendStatus(204);
}, },

View File

@ -273,7 +273,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
return perms.has("VIEW_CHANNEL"); return perms.has("VIEW_CHANNEL");
}) })
.map((channel) => { .map((channel) => {
channel.position = member.guild.channelOrdering.indexOf( channel.position = member.guild.channel_ordering.indexOf(
channel.id, channel.id,
); );
return channel; return channel;

View File

@ -215,7 +215,7 @@ export class Channel extends BaseClass {
where: { id: channel.guild_id }, where: { id: channel.guild_id },
select: { select: {
features: !opts?.skipNameChecks, features: !opts?.skipNameChecks,
channelOrdering: true, channel_ordering: true,
id: true, id: true,
}, },
}); });
@ -472,27 +472,27 @@ export class Channel extends BaseClass {
if (!guild) if (!guild)
guild = await Guild.findOneOrFail({ guild = await Guild.findOneOrFail({
where: { id: guild_id }, where: { id: guild_id },
select: { channelOrdering: true }, select: { channel_ordering: true },
}); });
return guild.channelOrdering.findIndex((id) => channel_id == id); return guild.channel_ordering.findIndex((id) => channel_id == id);
} }
static async getOrderedChannels(guild_id: string, guild?: Guild) { static async getOrderedChannels(guild_id: string, guild?: Guild) {
if (!guild) if (!guild)
guild = await Guild.findOneOrFail({ guild = await Guild.findOneOrFail({
where: { id: guild_id }, where: { id: guild_id },
select: { channelOrdering: true }, select: { channel_ordering: true },
}); });
const channels = await Promise.all( const channels = await Promise.all(
guild.channelOrdering.map((id) => guild.channel_ordering.map((id) =>
Channel.findOneOrFail({ where: { id } }), Channel.findOneOrFail({ where: { id } }),
), ),
); );
return channels.reduce((r, v) => { return channels.reduce((r, v) => {
v.position = (guild as Guild).channelOrdering.indexOf(v.id); v.position = (guild as Guild).channel_ordering.indexOf(v.id);
r[v.position] = v; r[v.position] = v;
return r; return r;
}, [] as Array<Channel>); }, [] as Array<Channel>);

View File

@ -298,7 +298,7 @@ export class Guild extends BaseClass {
premium_progress_bar_enabled: boolean = false; premium_progress_bar_enabled: boolean = false;
@Column({ select: false, type: "simple-array" }) @Column({ select: false, type: "simple-array" })
channelOrdering: string[]; channel_ordering: string[];
static async createGuild(body: { static async createGuild(body: {
name?: string; name?: string;
@ -327,7 +327,7 @@ export class Guild extends BaseClass {
description: "", description: "",
welcome_channels: [], welcome_channels: [],
}, },
channelOrdering: [], channel_ordering: [],
afk_timeout: Config.get().defaults.guild.afkTimeout, afk_timeout: Config.get().defaults.guild.afkTimeout,
default_message_notifications: default_message_notifications:
@ -430,20 +430,20 @@ export class Guild extends BaseClass {
if (!guild) if (!guild)
guild = await Guild.findOneOrFail({ guild = await Guild.findOneOrFail({
where: { id: guild_id }, where: { id: guild_id },
select: { channelOrdering: true }, select: { channel_ordering: true },
}); });
let position; let position;
if (typeof insertPoint == "string") if (typeof insertPoint == "string")
position = guild.channelOrdering.indexOf(insertPoint) + 1; position = guild.channel_ordering.indexOf(insertPoint) + 1;
else position = insertPoint; else position = insertPoint;
guild.channelOrdering.remove(channel_id); guild.channel_ordering.remove(channel_id);
guild.channelOrdering.splice(position, 0, channel_id); guild.channel_ordering.splice(position, 0, channel_id);
await Guild.update( await Guild.update(
{ id: guild_id }, { id: guild_id },
{ channelOrdering: guild.channelOrdering }, { channel_ordering: guild.channel_ordering },
); );
return position; return position;
} }
@ -452,7 +452,7 @@ export class Guild extends BaseClass {
return { return {
...this, ...this,
unavailable: this.unavailable == false ? undefined : true, unavailable: this.unavailable == false ? undefined : true,
channelOrdering: undefined, channel_ordering: undefined,
}; };
} }
} }

View File

@ -11,7 +11,7 @@ export class guildChannelOrdering1696420827239 implements MigrationInterface {
); );
await queryRunner.query( await queryRunner.query(
`ALTER TABLE guilds ADD channelOrdering text NOT NULL DEFAULT '[]'`, `ALTER TABLE guilds ADD channel_ordering text NOT NULL DEFAULT '[]'`,
); );
for (const guild_id of guilds.records.map((x) => x.id)) { for (const guild_id of guilds.records.map((x) => x.id)) {
@ -26,7 +26,7 @@ export class guildChannelOrdering1696420827239 implements MigrationInterface {
channels.sort((a, b) => a.position - b.position); channels.sort((a, b) => a.position - b.position);
await queryRunner.query( await queryRunner.query(
`UPDATE guilds SET channelOrdering = ? WHERE id = ?`, `UPDATE guilds SET channel_ordering = ? WHERE id = ?`,
[JSON.stringify(channels.map((x) => x.id)), guild_id], [JSON.stringify(channels.map((x) => x.id)), guild_id],
); );
} }

View File

@ -11,7 +11,7 @@ export class guildChannelOrdering1696420827239 implements MigrationInterface {
); );
await queryRunner.query( await queryRunner.query(
`ALTER TABLE guilds ADD channelOrdering text NOT NULL DEFAULT '[]'`, `ALTER TABLE guilds ADD channel_ordering text NOT NULL DEFAULT '[]'`,
); );
for (const guild_id of guilds.records.map((x) => x.id)) { for (const guild_id of guilds.records.map((x) => x.id)) {
@ -26,7 +26,7 @@ export class guildChannelOrdering1696420827239 implements MigrationInterface {
channels.sort((a, b) => a.position - b.position); channels.sort((a, b) => a.position - b.position);
await queryRunner.query( await queryRunner.query(
`UPDATE guilds SET channelOrdering = ? WHERE id = ?`, `UPDATE guilds SET channel_ordering = ? WHERE id = ?`,
[JSON.stringify(channels.map((x) => x.id)), guild_id], [JSON.stringify(channels.map((x) => x.id)), guild_id],
); );
} }

View File

@ -11,7 +11,7 @@ export class guildChannelOrdering1696420827239 implements MigrationInterface {
); );
await queryRunner.query( await queryRunner.query(
`ALTER TABLE guilds ADD channelOrdering text NOT NULL DEFAULT '[]'`, `ALTER TABLE guilds ADD channel_ordering text NOT NULL DEFAULT '[]'`,
); );
for (const guild_id of guilds.records.map((x) => x.id)) { for (const guild_id of guilds.records.map((x) => x.id)) {
@ -26,7 +26,7 @@ export class guildChannelOrdering1696420827239 implements MigrationInterface {
channels.sort((a, b) => a.position - b.position); channels.sort((a, b) => a.position - b.position);
await queryRunner.query( await queryRunner.query(
`UPDATE guilds SET channelOrdering = $1 WHERE id = $2`, `UPDATE guilds SET channel_ordering = $1 WHERE id = $2`,
[JSON.stringify(channels.map((x) => x.id)), guild_id], [JSON.stringify(channels.map((x) => x.id)), guild_id],
); );
} }