summary refs log tree commit diff
path: root/src/api/routes/users
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-10-11 06:31:02 +0200
committerRory& <root@rory.gay>2025-10-11 06:31:02 +0200
commitc0dfeaefb6d7ba93b0f865c1e6c574051e8de027 (patch)
treea9120a348dabecfc4231fefb91f6d9d2480d1500 /src/api/routes/users
parentTry to fix duplicate user settings (diff)
downloadserver-ts-c0dfeaefb6d7ba93b0f865c1e6c574051e8de027.tar.xz
Return defaults for missing {proto-,}settings
Diffstat (limited to 'src/api/routes/users')
-rw-r--r--src/api/routes/users/@me/settings-proto/1.ts6
-rw-r--r--src/api/routes/users/@me/settings-proto/2.ts6
-rw-r--r--src/api/routes/users/@me/settings.ts16
3 files changed, 15 insertions, 13 deletions
diff --git a/src/api/routes/users/@me/settings-proto/1.ts b/src/api/routes/users/@me/settings-proto/1.ts

index 334a7015..2eea291a 100644 --- a/src/api/routes/users/@me/settings-proto/1.ts +++ b/src/api/routes/users/@me/settings-proto/1.ts
@@ -50,7 +50,7 @@ router.get( }, }), async (req: Request, res: Response) => { - const userSettings = await UserSettingsProtos.getOrCreate(req.user_id); + const userSettings = await UserSettingsProtos.getOrDefault(req.user_id); res.json({ settings: PreloadedUserSettings.toBase64( @@ -102,7 +102,7 @@ router.get( }, }), async (req: Request, res: Response) => { - const userSettings = await UserSettingsProtos.getOrCreate(req.user_id); + const userSettings = await UserSettingsProtos.getOrDefault(req.user_id); res.json({ settings: PreloadedUserSettings.toJson(userSettings.userSettings!), @@ -155,7 +155,7 @@ async function patchUserSettings( required_data_version: number | undefined, atomic: boolean = false, ) { - const userSettings = await UserSettingsProtos.getOrCreate(userId); + const userSettings = await UserSettingsProtos.getOrDefault(userId); let settings = userSettings.userSettings!; if ( diff --git a/src/api/routes/users/@me/settings-proto/2.ts b/src/api/routes/users/@me/settings-proto/2.ts
index 9c989758..34cd3bfc 100644 --- a/src/api/routes/users/@me/settings-proto/2.ts +++ b/src/api/routes/users/@me/settings-proto/2.ts
@@ -50,7 +50,7 @@ router.get( }, }), async (req: Request, res: Response) => { - const userSettings = await UserSettingsProtos.getOrCreate(req.user_id); + const userSettings = await UserSettingsProtos.getOrDefault(req.user_id); res.json({ settings: FrecencyUserSettings.toBase64( @@ -102,7 +102,7 @@ router.get( }, }), async (req: Request, res: Response) => { - const userSettings = await UserSettingsProtos.getOrCreate(req.user_id); + const userSettings = await UserSettingsProtos.getOrDefault(req.user_id); res.json({ settings: FrecencyUserSettings.toJson( @@ -157,7 +157,7 @@ async function patchUserSettings( required_data_version: number | undefined, atomic: boolean = false, ) { - const userSettings = await UserSettingsProtos.getOrCreate(userId); + const userSettings = await UserSettingsProtos.getOrDefault(userId); let settings = userSettings.frecencySettings!; if ( diff --git a/src/api/routes/users/@me/settings.ts b/src/api/routes/users/@me/settings.ts
index b21b31ed..26d2f21b 100644 --- a/src/api/routes/users/@me/settings.ts +++ b/src/api/routes/users/@me/settings.ts
@@ -17,7 +17,7 @@ */ import { route } from "@spacebar/api"; -import { User, UserSettingsSchema } from "@spacebar/util"; +import { User, UserSettings, UserSettingsSchema } from "@spacebar/util"; import { Request, Response, Router } from "express"; const router = Router({ mergeParams: true }); @@ -35,11 +35,8 @@ router.get( }, }), async (req: Request, res: Response) => { - const user = await User.findOneOrFail({ - where: { id: req.user_id }, - relations: ["settings"], - }); - return res.json(user.settings); + const settings = await UserSettings.getOrDefault(req.user_id) + return res.json(settings); }, ); @@ -68,11 +65,16 @@ router.patch( relations: ["settings"], }); - user.settings.assign(body); + if (!user.settings) + user.settings = UserSettings.create(body); + else + user.settings.assign(body); + if (body.guild_folders) user.settings.guild_folders = body.guild_folders; await user.settings.save(); + await user.save(); res.json({ ...user.settings, index: undefined }); },