Make profile bio max length configurable

This commit is contained in:
TomatoCake 2024-08-10 22:10:20 +02:00
parent 9d2f97a92a
commit 20b2843680
5 changed files with 43 additions and 19 deletions

View File

@ -19,6 +19,8 @@
import { route } from "@spacebar/api"; import { route } from "@spacebar/api";
import { import {
Badge, Badge,
Config,
FieldErrors,
Member, Member,
PrivateUserProjection, PrivateUserProjection,
User, User,
@ -136,6 +138,18 @@ router.patch(
select: [...PrivateUserProjection, "data"], select: [...PrivateUserProjection, "data"],
}); });
if (body.bio) {
const { maxBio } = Config.get().limits.user;
if (body.bio.length > maxBio) {
throw FieldErrors({
bio: {
code: "BIO_INVALID",
message: `Bio must be less than ${maxBio} in length`,
},
});
}
}
user.assign(body); user.assign(body);
await user.save(); await user.save();

View File

@ -189,6 +189,18 @@ router.patch(
} }
} }
if (body.bio) {
const { maxBio } = Config.get().limits.user;
if (body.bio.length > maxBio) {
throw FieldErrors({
bio: {
code: "BIO_INVALID",
message: `Bio must be less than ${maxBio} in length`,
},
});
}
}
user.assign(body); user.assign(body);
user.validate(); user.validate();
await user.save(); await user.save();

View File

@ -20,4 +20,5 @@ export class UserLimits {
maxGuilds: number = 1048576; maxGuilds: number = 1048576;
maxUsername: number = 32; maxUsername: number = 32;
maxFriends: number = 5000; maxFriends: number = 5000;
maxBio: number = 190;
} }

View File

@ -130,7 +130,7 @@ export class User extends BaseClass {
bot: boolean = false; // if user is bot bot: boolean = false; // if user is bot
@Column() @Column()
bio: string = ""; // short description of the user (max 190 chars -> should be configurable) bio: string = ""; // short description of the user
@Column() @Column()
system: boolean = false; // shouldn't be used, the api sends this field type true, if the generated message comes from a system generated author system: boolean = false; // shouldn't be used, the api sends this field type true, if the generated message comes from a system generated author

View File

@ -23,9 +23,6 @@ export interface UserModifySchema {
*/ */
username?: string; username?: string;
avatar?: string | null; avatar?: string | null;
/**
* @maxLength 1024
*/
bio?: string; bio?: string;
accent_color?: number; accent_color?: number;
banner?: string | null; banner?: string | null;