1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-11-22 02:12:40 +01:00

Merge branch 'master' into fix/extended-settings-schema

This commit is contained in:
TomatoCake 2024-08-18 05:36:09 +02:00 committed by GitHub
commit 12a2e88989
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 3073 additions and 69935 deletions

View File

@ -16622,6 +16622,86 @@
]
}
},
"/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/{burst}/{user_id}": {
"delete": {
"security": [
{
"bearer": []
}
],
"responses": {
"204": {
"description": "No description available"
},
"400": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIErrorResponse"
}
}
}
},
"403": {
"description": "No description available"
},
"404": {
"description": "No description available"
}
},
"parameters": [
{
"name": "channel_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "channel_id"
},
{
"name": "message_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "message_id"
},
{
"name": "emoji",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "emoji"
},
{
"name": "burst",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "burst"
},
{
"name": "user_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "user_id"
}
],
"tags": [
"channels"
]
}
},
"/channels/{channel_id}/messages/{message_id}/": {
"patch": {
"x-right-required": "SEND_MESSAGES",

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,3 @@
{
"npmDepsHash": "sha256-kdS1SwcBu6Dor92iO1ickLgz0T5UL16nyA49xXGajf4="
}
"npmDepsHash": "sha256-kdS1SwcBu6Dor92iO1ickLgz0T5UL16nyA49xXGajf4="
}

View File

@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@ -287,6 +287,16 @@ router.post(
});
}
const { maxUsername } = Config.get().limits.user;
if (body.username.length > maxUsername) {
throw FieldErrors({
username: {
code: "BASE_TYPE_BAD_LENGTH",
message: `Must be between 2 and ${maxUsername} in length.`,
},
});
}
const user = await User.register({ ...body, req });
if (body.invite) {

View File

@ -155,8 +155,8 @@ router.patch(
if (check_username.length > maxUsername) {
throw FieldErrors({
username: {
code: "USERNAME_INVALID",
message: `Username must be less than ${maxUsername} in length`,
code: "BASE_TYPE_BAD_LENGTH",
message: `Must be between 2 and ${maxUsername} in length.`,
},
});
}

View File

@ -47,7 +47,10 @@ export async function onRequestGuildMembers(this: WebSocket, { d }: Payload) {
if ((query || (user_ids && user_ids.length > 0)) && (!limit || limit > 100))
limit = 100;
const permissions = await getPermission(this.user_id, guild_id);
const permissions = await getPermission(
this.user_id,
Array.isArray(guild_id) ? guild_id[0] : guild_id,
);
permissions.hasThrow("VIEW_CHANNEL");
const whereQuery: FindManyOptions["where"] = {};
@ -62,7 +65,7 @@ export async function onRequestGuildMembers(this: WebSocket, { d }: Payload) {
const memberFind: FindManyOptions = {
where: {
...whereQuery,
guild_id,
guild_id: Array.isArray(guild_id) ? guild_id[0] : guild_id,
},
relations: ["user", "roles"],
};
@ -70,7 +73,7 @@ export async function onRequestGuildMembers(this: WebSocket, { d }: Payload) {
const members = await Member.find(memberFind);
const baseData = {
guild_id,
guild_id: Array.isArray(guild_id) ? guild_id[0] : guild_id,
nonce,
};

View File

@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@ -19,7 +19,6 @@
export interface RegisterSchema {
/**
* @minLength 2
* @maxLength 32
*/
username: string;
/**

View File

@ -17,7 +17,7 @@
*/
export interface RequestGuildMembersSchema {
guild_id: string;
guild_id: string | [string];
query?: string;
limit?: number;
presences?: boolean;
@ -26,7 +26,7 @@ export interface RequestGuildMembersSchema {
}
export const RequestGuildMembersSchema = {
guild_id: String,
guild_id: [] as string | string[],
$query: String,
$limit: Number,
$presences: Boolean,

View File

@ -18,8 +18,7 @@
export interface UserModifySchema {
/**
* @minLength 1
* @maxLength 100
* @minLength 2
*/
username?: string;
avatar?: string | null;