Skip to content

Commit

Permalink
Merge pull request #1180 from DEVTomatoCake/fix/guild-create-response…
Browse files Browse the repository at this point in the history
…-schema

Trying to fix guild response schemas
  • Loading branch information
MaddyUnderStars authored Aug 22, 2024
2 parents 9bcc178 + e2cf9fd commit f00a315
Show file tree
Hide file tree
Showing 10 changed files with 22,015 additions and 3,484 deletions.
419 changes: 210 additions & 209 deletions assets/openapi.json

Large diffs are not rendered by default.

25,004 changes: 21,757 additions & 3,247 deletions assets/schemas.json

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions src/api/routes/guilds/#guild_id/index.ts
Original file line number Diff line number Diff line change
@@ -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/>.
*/
Expand Down Expand Up @@ -77,8 +77,8 @@ router.patch(
requestBody: "GuildUpdateSchema",
permission: "MANAGE_GUILD",
responses: {
"200": {
body: "GuildUpdateSchema",
200: {
body: "GuildCreateResponse",
},
401: {
body: "APIErrorResponse",
Expand Down
2 changes: 1 addition & 1 deletion src/api/routes/guilds/#guild_id/widget.json.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ router.get(
}),
async (req: Request, res: Response) => {
const { guild_id } = req.params;

const guild = await Guild.findOneOrFail({
where: { id: guild_id },
select: {
Expand Down
4 changes: 2 additions & 2 deletions src/util/interfaces/Event.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import {
Role,
Emoji,
PublicMember,
Guild,
Channel,
PublicUser,
User,
Expand All @@ -43,6 +42,7 @@ import {
ReadyUserGuildSettingsEntries,
ReadyPrivateChannel,
GuildOrUnavailable,
GuildCreateResponse,
} from "@spacebar/util";

export interface Event {
Expand Down Expand Up @@ -195,7 +195,7 @@ export interface GuildCreateEvent extends Event {

export interface GuildUpdateEvent extends Event {
event: "GUILD_UPDATE";
data: Guild;
data: GuildCreateResponse;
}

export interface GuildDeleteEvent extends Event {
Expand Down
7 changes: 3 additions & 4 deletions src/util/schemas/GuildCreateSchema.ts
Original file line number Diff line number Diff line change
@@ -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/>.
*/
Expand All @@ -26,7 +26,6 @@ export interface GuildCreateSchema {
region?: string;
icon?: string | null;
channels?: ChannelModifySchema[];
guild_template_code?: string;
system_channel_id?: string;
rules_channel_id?: string;
}
10 changes: 4 additions & 6 deletions src/util/schemas/GuildUpdateSchema.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
/*
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/>.
*/

import { GuildCreateSchema } from "@spacebar/util";

export interface GuildUpdateSchema
extends Omit<GuildCreateSchema, "channels" | "name"> {
name?: string;
export interface GuildUpdateSchema extends Omit<GuildCreateSchema, "channels"> {
banner?: string | null;
splash?: string | null;
description?: string;
Expand Down
29 changes: 25 additions & 4 deletions src/util/schemas/responses/GuildCreateResponse.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,42 @@
/*
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/>.
*/

export interface GuildCreateResponse {
import { GuildUpdateSchema, GuildWelcomeScreen } from "@spacebar/util";

export interface GuildCreateResponse extends Omit<GuildUpdateSchema, "name"> {
id: string;
name: string;
primary_category_id: string | undefined;
large: boolean | undefined;
max_members: number | undefined;
max_presences: number | undefined;
max_video_channel_users: number | undefined;
member_count: number | undefined;
presence_count: number | undefined;
template_id: string | undefined;
mfa_level: number | undefined;
owner_id: string | undefined;
premium_subscription_count: number | undefined;
premium_tier: number | undefined;
welcome_screen: GuildWelcomeScreen;
widget_channel_id: string | undefined;
widget_enabled: boolean;
nsfw_level: number | undefined;
nsfw: boolean;
parent: string | undefined;
}
11 changes: 6 additions & 5 deletions src/util/schemas/responses/MemberJoinGuildResponse.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
/*
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/>.
*/

import { Emoji, Guild, Role, Sticker } from "../../entities";
import { GuildCreateResponse } from "@spacebar/util";
import { Emoji, Role, Sticker } from "../../entities";

export interface MemberJoinGuildResponse {
guild: Guild;
guild: GuildCreateResponse;
emojis: Emoji[];
roles: Role[];
stickers: Sticker[];
Expand Down
3 changes: 2 additions & 1 deletion src/util/schemas/responses/TypedResponses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/

import { GuildCreateResponse } from "@spacebar/util";
import { GeneralConfiguration, LimitsConfiguration } from "../../config";
import { DmChannelDTO } from "../../dtos";
import {
Expand Down Expand Up @@ -89,7 +90,7 @@ export type APIEmojiArray = Emoji[];
export type APIMemberArray = Member[];
export type APIPublicMember = PublicMember;

export interface APIGuildWithJoinedAt extends Guild {
export interface APIGuildWithJoinedAt extends GuildCreateResponse {
joined_at: string;
}

Expand Down

0 comments on commit f00a315

Please sign in to comment.