diff --git a/assets/openapi.json b/assets/openapi.json index 4c045736a..0e21164c4 100644 Binary files a/assets/openapi.json and b/assets/openapi.json differ diff --git a/assets/schemas.json b/assets/schemas.json index 5b8ea8d74..bbf6461f5 100644 Binary files a/assets/schemas.json and b/assets/schemas.json differ diff --git a/src/api/routes/guilds/#guild_id/members/#member_id/index.ts b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts index faa8ae8fc..8b2aa8325 100644 --- a/src/api/routes/guilds/#guild_id/members/#member_id/index.ts +++ b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts @@ -128,6 +128,11 @@ router.patch( member.roles = body.roles.map((x) => Role.create({ id: x })); } + if ("communication_disabled_until" in body) { + permission.hasThrow("MODERATE_MEMBERS"); + member.communication_disabled_until = body.communication_disabled_until == null ? null : new Date(body.communication_disabled_until) ; + } + await member.save(); member.roles = member.roles.filter((x) => x.id !== guild_id); diff --git a/src/schemas/uncategorised/MemberChangeSchema.ts b/src/schemas/uncategorised/MemberChangeSchema.ts index e1ee09695..8804eff31 100644 --- a/src/schemas/uncategorised/MemberChangeSchema.ts +++ b/src/schemas/uncategorised/MemberChangeSchema.ts @@ -21,4 +21,5 @@ export interface MemberChangeSchema { nick?: string; avatar?: string | null; bio?: string; + communication_disabled_until?: string | null; }