diff --git a/assets/openapi.json b/assets/openapi.json
index ecfb25753..9c1aea008 100644
Binary files a/assets/openapi.json and b/assets/openapi.json differ
diff --git a/assets/schemas.json b/assets/schemas.json
index 936ce0733..bcca4610a 100644
Binary files a/assets/schemas.json and b/assets/schemas.json differ
diff --git a/src/api/routes/channels/preload-messages.ts b/src/api/routes/channels/preload-messages.ts
index 80e0ddf78..1a7548e71 100644
--- a/src/api/routes/channels/preload-messages.ts
+++ b/src/api/routes/channels/preload-messages.ts
@@ -20,7 +20,7 @@ import { Request, Response, Router } from "express";
import { route } from "@spacebar/api/util/handlers/route";
import { Message } from "@spacebar/database";
import { Config } from "@spacebar/util";
-import { PreloadMessagesRequestSchema, PreloadMessagesResponseSchema } from "@spacebar/schemas";
+import { PreloadMessagesRequestSchema, PublicMessageArray } from "@spacebar/schemas";
const router = Router({ mergeParams: true });
@@ -30,7 +30,7 @@ router.post(
requestBody: "PreloadMessagesRequestSchema",
responses: {
200: {
- body: "PreloadMessagesResponse",
+ body: "PublicMessageArray",
},
400: {
body: "APIErrorResponse",
@@ -62,7 +62,7 @@ router.post(
// https://docs.discord.food/resources/message#preload-messages - reactions are not included in the response
x.reactions = undefined;
return x;
- }) as unknown as PreloadMessagesResponseSchema;
+ }) as unknown as PublicMessageArray;
return res.status(200).send(filteredMessages);
},
diff --git a/src/api/routes/interactions/index.ts b/src/api/routes/interactions/index.ts
index a556c380b..4875d2119 100644
--- a/src/api/routes/interactions/index.ts
+++ b/src/api/routes/interactions/index.ts
@@ -92,24 +92,26 @@ router.post("/", route({}), async (req: Request, res: Response) => {
}
if (body.type === InteractionType.MessageComponent || body.data.type === InteractionType.ModalSubmit) {
- interactionData.message = await Message.findOneOrFail({
- where: { id: body.message_id, flags: undefined },
- relations: {
- author: true,
- webhook: true,
- application: true,
- mentions: true,
- mention_roles: true,
- mention_channels: true,
- sticker_items: true,
- attachments: true,
- thread: {
- recipients: {
- user: true,
+ interactionData.message = (
+ await Message.findOneOrFail({
+ where: { id: body.message_id, flags: undefined },
+ relations: {
+ author: true,
+ webhook: true,
+ application: true,
+ mentions: true,
+ mention_roles: true,
+ mention_channels: true,
+ sticker_items: true,
+ attachments: true,
+ thread: {
+ recipients: {
+ user: true,
+ },
},
},
- },
- });
+ })
+ ).toJSON();
}
await emitEvent({
diff --git a/src/schemas/api/bots/InteractionCreateSchema.ts b/src/schemas/api/bots/InteractionCreateSchema.ts
index ff7cfaf8f..110e410b6 100644
--- a/src/schemas/api/bots/InteractionCreateSchema.ts
+++ b/src/schemas/api/bots/InteractionCreateSchema.ts
@@ -16,9 +16,7 @@
along with this program. If not, see .
*/
-import { PublicMember, PublicUser, Snowflake, InteractionType } from "@spacebar/schemas";
-// TODO: remove entity imports
-import { Channel, Message } from "@spacebar/database";
+import { PublicMember, PublicUser, Snowflake, InteractionType, PublicMessage, PublicChannel } from "@spacebar/schemas";
export interface InteractionCreateSchema {
version: number; // TODO: types?
@@ -30,12 +28,12 @@ export interface InteractionCreateSchema {
guild?: InteractionGuild;
guild_id?: Snowflake;
guild_locale?: string;
- channel?: Channel;
+ channel?: PublicChannel;
channel_id?: Snowflake;
member?: PublicMember;
user?: PublicUser;
locale?: string;
- message?: Message;
+ message?: PublicMessage;
app_permissions: string;
entitlements?: object[]; // TODO: types?
entitlement_sku_ids?: Snowflake[]; // DEPRECATED
diff --git a/src/schemas/api/channels/Webhook.ts b/src/schemas/api/channels/Webhook.ts
index cd87d3653..22f78946f 100644
--- a/src/schemas/api/channels/Webhook.ts
+++ b/src/schemas/api/channels/Webhook.ts
@@ -16,9 +16,7 @@
along with this program. If not, see .
*/
-// TODO: remove dependency on entities
-import { User, Webhook } from "@spacebar/database";
-import { IntegrationGuild, PartialUser, Snowflake } from "@spacebar/schemas";
+import { IntegrationGuild, PartialUser, PublicUser, Snowflake } from "@spacebar/schemas";
export enum WebhookType {
Incoming = 1,
@@ -27,8 +25,8 @@ export enum WebhookType {
}
export interface WebhookCreateResponse {
- user: User;
- hook: Webhook;
+ user: PublicUser;
+ hook: WebhookResponse;
}
export type WebhookArray = WebhookResponse[];
diff --git a/src/schemas/api/messages/Message.ts b/src/schemas/api/messages/Message.ts
index a6d5f162d..bc2bd447b 100644
--- a/src/schemas/api/messages/Message.ts
+++ b/src/schemas/api/messages/Message.ts
@@ -163,6 +163,7 @@ export interface MessageSnapshot {
};
}
+export type PublicMessageArray = PublicMessage[];
export interface PublicMessage {
id: Snowflake;
channel_id: Snowflake;
diff --git a/src/schemas/responses/EmojiSourceResponse.ts b/src/schemas/responses/EmojiSourceResponse.ts
index 511ba380d..5a9e8face 100644
--- a/src/schemas/responses/EmojiSourceResponse.ts
+++ b/src/schemas/responses/EmojiSourceResponse.ts
@@ -16,8 +16,7 @@
along with this program. If not, see .
*/
-// TODO: remove entity import
-import { Emoji } from "@spacebar/database";
+import { EmojiResponse } from "@spacebar/schemas/api/guilds/Emoji";
export interface EmojiSourceResponse {
type: "GUILD" | "APPLICATION";
@@ -32,7 +31,7 @@ export interface EmojiGuild {
icon?: string | null;
description?: string | null;
features: string[];
- emojis: Emoji[];
+ emojis: EmojiResponse[];
premium_tier: number;
premium_subscription_count?: number;
approximate_member_count?: number;
diff --git a/src/schemas/responses/GuildMessagesSearchResponse.ts b/src/schemas/responses/GuildMessagesSearchResponse.ts
index 3cc35ce28..df582b657 100644
--- a/src/schemas/responses/GuildMessagesSearchResponse.ts
+++ b/src/schemas/responses/GuildMessagesSearchResponse.ts
@@ -18,7 +18,7 @@
// TODO: remove dependency on entities
import { Role } from "@spacebar/database";
-import { BaseMessageComponents, Embed, MessageType, Poll, PublicUser } from "@spacebar/schemas";
+import { BaseMessageComponents, Embed, MessageType, Poll, PublicUser, RoleResponse } from "@spacebar/schemas";
import { PublicAttachment } from "../api/messages/Attachments";
export interface GuildMessagesSearchMessage {
@@ -30,7 +30,7 @@ export interface GuildMessagesSearchMessage {
attachments: PublicAttachment[];
embeds: Embed[];
mentions: PublicUser[];
- mention_roles: Role[];
+ mention_roles: RoleResponse[];
pinned: boolean;
mention_everyone?: boolean;
tts: boolean;
diff --git a/src/schemas/responses/MemberJoinGuildResponse.ts b/src/schemas/responses/MemberJoinGuildResponse.ts
index d37ed8653..87e50239e 100644
--- a/src/schemas/responses/MemberJoinGuildResponse.ts
+++ b/src/schemas/responses/MemberJoinGuildResponse.ts
@@ -16,13 +16,12 @@
along with this program. If not, see .
*/
-// TODO: remove entity imports
-import { Emoji, Role, Sticker } from "@spacebar/database";
-import { GuildCreateResponse } from "@spacebar/schemas";
+import { GuildCreateResponse, RoleResponse, StickerResponse } from "@spacebar/schemas";
+import { EmojiResponse } from "@spacebar/schemas/api/guilds/Emoji";
export interface MemberJoinGuildResponse {
guild: GuildCreateResponse;
- emojis: Emoji[];
- roles: Role[];
- stickers: Sticker[];
+ emojis: EmojiResponse[];
+ roles: RoleResponse[];
+ stickers: StickerResponse[];
}
diff --git a/src/schemas/responses/PreloadMessagesResponseSchema.ts b/src/schemas/responses/PreloadMessagesResponseSchema.ts
index ea3d38d9c..726d934e1 100644
--- a/src/schemas/responses/PreloadMessagesResponseSchema.ts
+++ b/src/schemas/responses/PreloadMessagesResponseSchema.ts
@@ -16,7 +16,6 @@
along with this program. If not, see .
*/
-// TODO: remove entity import
-import { Message } from "@spacebar/database";
+import { PublicMessage } from "@spacebar/schemas";
-export type PreloadMessagesResponseSchema = Message[];
+export type PreloadMessagesResponseSchema = PublicMessage[];