Skip to content

Commit 3074898

Browse files
committed
fix DB inconsistencies (requires migration)
removes the 'fix' to some IDs being stored as <#> too, as this requires the DB to be manually migrated anyway to prevent data loss
1 parent e39a825 commit 3074898

File tree

5 files changed

+18
-21
lines changed

5 files changed

+18
-21
lines changed

docker-compose.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ services:
66
volumes:
77
- ./data.db:/app/data.db
88
- ./.env:/app/.env
9-

src/utils/channelCheck.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export async function channelCheck(options: {
3939

4040
async function reset() {
4141
await dm?.send({ embeds: [embed] });
42-
await resetSetting(guild.id, setting.category, setting.setting);
42+
resetSetting(guild.id, setting.category, setting.setting);
4343
return false;
4444
}
4545

src/utils/database/settings.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ export async function getSetting<
262262
return null;
263263
}
264264

265-
const res = getQuery.all(JSON.stringify(guildID), `${key}.${setting}`) as TypeOfDefinition<
265+
const res = getQuery.all(guildID, `${key}.${setting}`) as TypeOfDefinition<
266266
typeof tableDefinition
267267
>[];
268268
const set = settingsDefinition[key].settings[setting];
@@ -281,8 +281,6 @@ export async function getSetting<
281281
return (Number(value) == 1 ? true : false) as SqlType<typeof set.type>;
282282
case "INTEGER":
283283
return parseInt(value) as SqlType<typeof set.type>;
284-
case "CHANNEL":
285-
return value.replace("<#", "").replace(">", "");
286284
default:
287285
return value as SqlType<typeof set.type>;
288286
}
@@ -307,27 +305,27 @@ export async function getSettingCategory<K extends keyof typeof settingsDefiniti
307305
return array;
308306
}
309307

310-
export async function setSetting<
308+
export function setSetting<
311309
K extends keyof typeof settingsDefinition,
312310
S extends keyof (typeof settingsDefinition)[K]["settings"],
313311
>(guildID: string, key: K, setting: S, value: any) {
314312
const set = Array.isArray(value) ? dekominator(value) : value;
315-
deleteQuery.all(JSON.stringify(guildID), `${key}.${setting}`);
316-
insertQuery.run(JSON.stringify(guildID), `${key}.${setting}`, set);
313+
deleteQuery.all(guildID, `${key}.${setting}`);
314+
insertQuery.run(guildID, `${key}.${setting}`, set);
317315
}
318316

319-
export async function resetSetting<
317+
export function resetSetting<
320318
K extends keyof typeof settingsDefinition,
321319
S extends keyof (typeof settingsDefinition)[K]["settings"],
322320
>(guildID: string, key: K, setting: S) {
323-
deleteQuery.run(JSON.stringify(guildID), `${key}.${setting}`);
321+
deleteQuery.run(guildID, `${key}.${setting}`);
324322
}
325323

326-
export async function resetSettingCategory<K extends keyof typeof settingsDefinition>(
324+
export function resetSettingCategory<K extends keyof typeof settingsDefinition>(
327325
guildID: string,
328326
key: K,
329327
) {
330-
deleteCategoryQuery.run(JSON.stringify(guildID), `%${key}%`);
328+
deleteCategoryQuery.run(guildID, `%${key}%`);
331329
}
332330

333331
export function listPublicServers(): Promise<
@@ -338,14 +336,14 @@ export function listPublicServers(): Promise<
338336
}[]
339337
> {
340338
const publicGuildSet = new Set(
341-
(listPublicQuery.all() as TypeOfDefinition<typeof tableDefinition>[]).map(entry =>
342-
JSON.parse(entry.guildID),
339+
(listPublicQuery.all() as TypeOfDefinition<typeof tableDefinition>[]).map(
340+
entry => entry.guildID,
343341
),
344342
);
345343

346344
const inviteGuildsSet = new Set(
347345
(listPublicWithInvitesEnabledQuery.all() as TypeOfDefinition<typeof tableDefinition>[]).map(
348-
entry => JSON.parse(entry.guildID),
346+
entry => entry.guildID,
349347
),
350348
);
351349

@@ -363,7 +361,7 @@ export function listPublicServers(): Promise<
363361

364362
export async function deletePublicServer(guildId: string) {
365363
try {
366-
deletePublicQuery.all(JSON.stringify(guildId));
364+
deletePublicQuery.all(guildId);
367365
} catch (error) {
368366
return await errorEmbed({
369367
client,

src/utils/embeds/serverEmbed.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ export async function serverEmbed(options: Options) {
123123

124124
if (invite?.show) {
125125
async function noPerms(channel?: NewsChannel | TextChannel | StageChannel | VoiceChannel) {
126-
await resetSetting(guild.id, "serverboard", "server_invite");
127-
await resetSetting(guild.id, "serverboard", "invite_channel");
126+
resetSetting(guild.id, "serverboard", "server_invite");
127+
resetSetting(guild.id, "serverboard", "invite_channel");
128128
const errEmbed = new EmbedBuilder()
129129
.setAuthor({
130130
name: `${dot}Serverboard is misconfigured in your server!`,

src/utils/embeds/settingsEmbed.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ async function setSettingPlease(
9090
value: any,
9191
table: "server" | "user",
9292
) {
93-
if (table == "server") return await setSetting(id, key, setting, value);
93+
if (table == "server") return setSetting(id, key, setting, value);
9494
else return await setUserSetting(id, key, setting, value);
9595
}
9696

@@ -268,8 +268,8 @@ export async function settingsEmbed(
268268
?.permissions.has("CreateInstantInvite") ||
269269
!guild!.members.cache.get(interaction.client.user.id)?.permissions.has("ManageGuild"))
270270
) {
271-
await resetSetting(guild!.id, "serverboard", "server_invite");
272-
await resetSetting(guild!.id, "serverboard", "invite_channel");
271+
resetSetting(guild!.id, "serverboard", "server_invite");
272+
resetSetting(guild!.id, "serverboard", "invite_channel");
273273
text = `${dotCheck({ string: ":warning:", doubleSpace: true, twoSides: true, includeString: true })}${humanizeSettings(name)}\n-# The **Create Invite** and/or the **Manage Server** permissions are required for this setting to work.`;
274274
component.setDisabled(true);
275275
}

0 commit comments

Comments
 (0)