summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-02-03 07:00:37 +0100
committerRory& <root@rory.gay>2026-02-03 07:00:37 +0100
commite5ce3b54cec102521075c708dddd04f5c219efca (patch)
tree06ce45185deaaf6a0539cee972765614a166a754 /src
parentActually save webhook apps - fixes #1474 (diff)
downloadserver-ts-e5ce3b54cec102521075c708dddd04f5c219efca.tar.xz
Update schemas for profile customisation
Diffstat (limited to 'src')
-rw-r--r--src/api/routes/users/@me/index.ts26
-rw-r--r--src/schemas/api/users/User.ts10
-rw-r--r--src/schemas/uncategorised/UserModifySchema.ts6
3 files changed, 40 insertions, 2 deletions
diff --git a/src/api/routes/users/@me/index.ts b/src/api/routes/users/@me/index.ts

index 187862f1..469dddef 100644 --- a/src/api/routes/users/@me/index.ts +++ b/src/api/routes/users/@me/index.ts
@@ -20,7 +20,7 @@ import { route } from "@spacebar/api"; import { Config, emitEvent, FieldErrors, generateToken, handleFile, User, UserUpdateEvent } from "@spacebar/util"; import bcrypt from "bcrypt"; import { Request, Response, Router } from "express"; -import { PrivateUserProjection, UserModifySchema } from "@spacebar/schemas"; +import { DisplayNameStyle, PrivateUserProjection, UserModifySchema } from "@spacebar/schemas"; const router: Router = Router({ mergeParams: true }); @@ -191,6 +191,30 @@ router.patch( } } + if ("display_name_font_id" in body) { + if (!body.display_name_font_id) user.display_name_styles = undefined; + else { + user.display_name_styles ??= {} as unknown as DisplayNameStyle; + user.display_name_styles!.font_id = body.display_name_font_id; + } + } + + if ("display_name_effect_id" in body) { + if (!body.display_name_effect_id) user.display_name_styles = undefined; + else { + user.display_name_styles ??= {} as unknown as DisplayNameStyle; + user.display_name_styles!.effect_id = body.display_name_effect_id; + } + } + + if ("display_name_colors" in body) { + if (!body.display_name_colors) user.display_name_styles = undefined; + else { + user.display_name_styles ??= {} as unknown as DisplayNameStyle; + user.display_name_styles!.colors = body.display_name_colors; + } + } + user.assign(body); user.validate(); await user.save(); diff --git a/src/schemas/api/users/User.ts b/src/schemas/api/users/User.ts
index 41d60673..29b211d4 100644 --- a/src/schemas/api/users/User.ts +++ b/src/schemas/api/users/User.ts
@@ -57,6 +57,10 @@ interface UserEntityPleaseRewriteThankYou { fingerprints: string[]; settings?: UserSettingsSchema; badge_ids?: string[]; + avatar_decoration_data?: AvatarDecorationData; + display_name_styles?: DisplayNameStyle; + collectibles?: Collectibles; + primary_guild?: PrimaryGuild; } export interface PartialUser { @@ -97,7 +101,7 @@ export interface NameplateData { export interface DisplayNameStyle { font_id: number; effect_id: number; - colors: number; + colors: number[]; } export interface PrimaryGuild { @@ -122,6 +126,10 @@ export enum PublicUserEnum { theme_colors, pronouns, badge_ids, + avatar_decoration_data, + display_name_styles, + collectibles, + primary_guild, } export type PublicUserKeys = keyof typeof PublicUserEnum; diff --git a/src/schemas/uncategorised/UserModifySchema.ts b/src/schemas/uncategorised/UserModifySchema.ts
index c7228e7b..45c1ae90 100644 --- a/src/schemas/uncategorised/UserModifySchema.ts +++ b/src/schemas/uncategorised/UserModifySchema.ts
@@ -16,6 +16,8 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { User_DisplayNameEffect, User_DisplayNameFont } from "discord-protos"; + export interface UserModifySchema { /** * @minLength 2 @@ -49,4 +51,8 @@ export interface UserModifySchema { * @maxLength 4 */ discriminator?: string; + + display_name_colors?: number[]; + display_name_effect_id?: User_DisplayNameEffect; + display_name_font_id?: User_DisplayNameFont; }