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 });
},
|