diff --git a/src/api/routes/users/@me/settings-proto/1.ts b/src/api/routes/users/@me/settings-proto/1.ts index 3ac64292..71ff46b9 100644 --- a/src/api/routes/users/@me/settings-proto/1.ts +++ b/src/api/routes/users/@me/settings-proto/1.ts @@ -27,6 +27,7 @@ import { UserSettingsProtos, } from "@spacebar/util"; import { PreloadedUserSettings } from "discord-protos"; +import { JsonValue } from "@protobuf-ts/runtime"; const router: Router = Router(); @@ -167,12 +168,25 @@ async function patchUserSettings( }; } - console.log(`Updating user settings for user ${userId} with atomic=${atomic}:`, updatedSettings); + console.log( + `Updating user settings for user ${userId} with atomic=${atomic}:`, + updatedSettings, + ); if (!atomic) { - settings = Object.assign(settings, updatedSettings); + settings = PreloadedUserSettings.fromJson( + Object.assign( + PreloadedUserSettings.toJson(settings) as object, + PreloadedUserSettings.toJson(updatedSettings) as object, + ) as JsonValue, + ); } else { - settings = OrmUtils.mergeDeep(settings, updatedSettings); + settings = PreloadedUserSettings.fromJson( + OrmUtils.mergeDeep( + PreloadedUserSettings.toJson(settings) as object, + PreloadedUserSettings.toJson(updatedSettings) as object, + ) as JsonValue, + ); } userSettings.userSettings = settings; diff --git a/src/api/routes/users/@me/settings-proto/2.ts b/src/api/routes/users/@me/settings-proto/2.ts index e0cf786f..dbb331f5 100644 --- a/src/api/routes/users/@me/settings-proto/2.ts +++ b/src/api/routes/users/@me/settings-proto/2.ts @@ -26,7 +26,8 @@ import { SettingsProtoUpdateSchema, UserSettingsProtos, } from "@spacebar/util"; -import { FrecencyUserSettings } from "discord-protos"; +import { FrecencyUserSettings, PreloadedUserSettings } from "discord-protos"; +import { JsonValue } from "@protobuf-ts/runtime"; const router: Router = Router(); @@ -103,7 +104,9 @@ router.get( const userSettings = await UserSettingsProtos.getOrCreate(req.user_id); res.json({ - settings: FrecencyUserSettings.toJson(userSettings.frecencySettings!), + settings: FrecencyUserSettings.toJson( + userSettings.frecencySettings!, + ), } as SettingsProtoJsonResponse); }, ); @@ -167,12 +170,25 @@ async function patchUserSettings( }; } - console.log(`Updating frecency settings for user ${userId} with atomic=${atomic}:`, updatedSettings); + console.log( + `Updating frecency settings for user ${userId} with atomic=${atomic}:`, + updatedSettings, + ); if (!atomic) { - settings = Object.assign(settings, updatedSettings); + settings = FrecencyUserSettings.fromJson( + Object.assign( + FrecencyUserSettings.toJson(settings) as object, + FrecencyUserSettings.toJson(updatedSettings) as object, + ) as JsonValue, + ); } else { - settings = OrmUtils.mergeDeep(settings, updatedSettings); + settings = FrecencyUserSettings.fromJson( + OrmUtils.mergeDeep( + FrecencyUserSettings.toJson(settings) as object, + FrecencyUserSettings.toJson(updatedSettings) as object, + ) as JsonValue, + ); } userSettings.frecencySettings = settings;