diff options
author | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2022-12-31 17:25:28 +1100 |
---|---|---|
committer | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2022-12-31 17:51:57 +1100 |
commit | 0fe03771ce2a03915c266a0d4d34f2c11b229123 (patch) | |
tree | 54d54db84fc0ebd6c992b13dbd36ddb05b009eb4 | |
parent | Merge branch 'maddy/refactor' into maddy/bodyParserPatch (diff) | |
download | server-0fe03771ce2a03915c266a0d4d34f2c11b229123.tar.xz |
Profile themes and pronouns
-rw-r--r-- | assets/schemas.json | 32 | ||||
-rw-r--r-- | src/api/routes/users/#id/profile.ts | 10 | ||||
-rw-r--r-- | src/gateway/opcodes/Identify.ts | 1 | ||||
-rw-r--r-- | src/util/config/types/subconfigurations/defaults/UserDefaults.ts | 4 | ||||
-rw-r--r-- | src/util/entities/Member.ts | 6 | ||||
-rw-r--r-- | src/util/entities/User.ts | 11 | ||||
-rw-r--r-- | src/util/schemas/MemberChangeProfileSchema.ts | 6 | ||||
-rw-r--r-- | src/util/schemas/UserProfileModifySchema.ts | 6 |
8 files changed, 71 insertions, 5 deletions
diff --git a/assets/schemas.json b/assets/schemas.json index 879d202e..40599f06 100644 --- a/assets/schemas.json +++ b/assets/schemas.json @@ -12064,6 +12064,22 @@ }, "bio": { "type": "string" + }, + "pronouns": { + "type": "string" + }, + "theme_colors": { + "type": "array", + "items": [ + { + "type": "integer" + }, + { + "type": "integer" + } + ], + "minItems": 2, + "maxItems": 2 } }, "additionalProperties": false, @@ -19567,6 +19583,22 @@ "null", "string" ] + }, + "pronouns": { + "type": "string" + }, + "theme_colors": { + "type": "array", + "items": [ + { + "type": "integer" + }, + { + "type": "integer" + } + ], + "minItems": 2, + "maxItems": 2 } }, "additionalProperties": false, diff --git a/src/api/routes/users/#id/profile.ts b/src/api/routes/users/#id/profile.ts index 083d44af..ac844427 100644 --- a/src/api/routes/users/#id/profile.ts +++ b/src/api/routes/users/#id/profile.ts @@ -92,7 +92,9 @@ router.get( const userProfile = { bio: req.user_bot ? null : user.bio, accent_color: user.accent_color, - banner: user.banner + banner: user.banner, + pronouns: user.pronouns, + theme_colors: user.theme_colors, }; const guildMemberDto = guild_member @@ -126,6 +128,8 @@ router.get( premium_since: user.premium_since, // TODO mutual_guilds: mutual_guilds, // TODO {id: "", nick: null} when ?with_mutual_guilds=true user: userDto, + premium_type: user.premium_type, + profile_themes_experiment_bucket: 4, // TODO: This doesn't make it available, for some reason? user_profile: userProfile, guild_member: guild_id && guildMemberDto, guild_member_profile: guild_id && guildMemberProfile @@ -154,7 +158,9 @@ router.patch("/", route({ body: "UserProfileModifySchema" }), async (req: Reques res.json({ accent_color: user.accent_color, bio: user.bio, - banner: user.banner + banner: user.banner, + theme_colors: user.theme_colors, + pronouns: user.pronouns, }); }); diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts index 69a60880..ca3ae66f 100644 --- a/src/gateway/opcodes/Identify.ts +++ b/src/gateway/opcodes/Identify.ts @@ -198,6 +198,7 @@ export async function onIdentify(this: WebSocket, data: Payload) { bot: related_user.bot, bio: related_user.bio, premium_since: user.premium_since, + premium_type: user.premium_type, accent_color: related_user.accent_color, }; users.push(public_related_user); diff --git a/src/util/config/types/subconfigurations/defaults/UserDefaults.ts b/src/util/config/types/subconfigurations/defaults/UserDefaults.ts index 4481c011..f20a14b6 100644 --- a/src/util/config/types/subconfigurations/defaults/UserDefaults.ts +++ b/src/util/config/types/subconfigurations/defaults/UserDefaults.ts @@ -1,5 +1,5 @@ export class UserDefaults { - premium: boolean = false; - premium_type: number = 2; + premium: boolean = true; + premiumType: number = 2; verified: boolean = true; } \ No newline at end of file diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts index bffec326..eeae181e 100644 --- a/src/util/entities/Member.ts +++ b/src/util/entities/Member.ts @@ -125,6 +125,12 @@ export class Member extends BaseClassWithoutId { @Column() bio: string; + + @Column({ nullable: true, type: "simple-array" }) + theme_colors?: number[]; // TODO: Separate `User` and `UserProfile` models + + @Column({ nullable: true }) + pronouns?: string; @Column({ nullable: true }) communication_disabled_until: Date; diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index eeffab5b..e039eb17 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -34,6 +34,9 @@ export enum PublicUserEnum { bio, bot, premium_since, + premium_type, + theme_colors, + pronouns, } export type PublicUserKeys = keyof typeof PublicUserEnum; @@ -88,6 +91,12 @@ export class User extends BaseClass { @Column({ nullable: true }) banner?: string; // hash of the user banner + @Column({ nullable: true, type: "simple-array" }) + theme_colors?: number[]; // TODO: Separate `User` and `UserProfile` models + + @Column({ nullable: true }) + pronouns?: string; + @Column({ nullable: true, select: false }) phone?: string; // phone number of the user @@ -351,7 +360,7 @@ export class User extends BaseClass { valid_tokens_since: new Date(), }, extended_settings: "{}", - premium_type: Config.get().defaults.user.premium_type, + premium_type: Config.get().defaults.user.premiumType, premium: Config.get().defaults.user.premium, verified: Config.get().defaults.user.verified, settings: settings, diff --git a/src/util/schemas/MemberChangeProfileSchema.ts b/src/util/schemas/MemberChangeProfileSchema.ts index 3e85174d..73c852f3 100644 --- a/src/util/schemas/MemberChangeProfileSchema.ts +++ b/src/util/schemas/MemberChangeProfileSchema.ts @@ -2,4 +2,10 @@ export interface MemberChangeProfileSchema { banner?: string | null; nick?: string; bio?: string; + pronouns?: string; + + /* + * @items.type integer + */ + theme_colors?: [number, number]; } diff --git a/src/util/schemas/UserProfileModifySchema.ts b/src/util/schemas/UserProfileModifySchema.ts index 33a372c9..1e53d9e4 100644 --- a/src/util/schemas/UserProfileModifySchema.ts +++ b/src/util/schemas/UserProfileModifySchema.ts @@ -2,4 +2,10 @@ export interface UserProfileModifySchema { bio?: string; accent_color?: number | null; banner?: string | null; + pronouns?: string; + + /* + * @items.type integer + */ + theme_colors?: [number, number] } |