summary refs log tree commit diff
path: root/src/schema
diff options
context:
space:
mode:
Diffstat (limited to 'src/schema')
-rw-r--r--src/schema/Message.ts72
1 files changed, 57 insertions, 15 deletions
diff --git a/src/schema/Message.ts b/src/schema/Message.ts

index 80897f9d..4ae6c136 100644 --- a/src/schema/Message.ts +++ b/src/schema/Message.ts
@@ -1,27 +1,69 @@ +import { Embed, EmbedImage } from "fosscord-server-util"; +import { Length } from "../util/instanceOf"; + export const MessageCreateSchema = { - content: String, - nonce: Number, - tts: Boolean, - embed: {}, - allowed_mentions: [], - message_reference: { + $content: new Length(String, 0, 2000), + $nonce: String, + $tts: Boolean, + $embed: { + $title: new Length(String, 0, 256), //title of embed + $type: String, // type of embed (always "rich" for webhook embeds) + $description: new Length(String, 0, 2048), // description of embed + $url: String, // url of embed + $timestamp: String, // ISO8601 timestamp + $color: Number, // color code of the embed + $footer: { + text: new Length(String, 0, 2048), + icon_url: String, + proxy_icon_url: String, + }, // footer object footer information + $image: EmbedImage, // image object image information + $thumbnail: EmbedImage, // thumbnail object thumbnail information + $video: EmbedImage, // video object video information + $provider: { + name: String, + url: String, + }, // provider object provider information + $author: { + name: new Length(String, 0, 256), + url: String, + icon_url: String, + proxy_icon_url: String, + }, // author object author information + $fields: new Length( + [ + { + name: new Length(String, 0, 256), + value: new Length(String, 0, 1024), + $inline: Boolean, + }, + ], + 0, + 25 + ), + }, + $allowed_mentions: [], + $message_reference: { message_id: BigInt, channel_id: BigInt, - guild_id: BigInt, - fail_if_not_exists: Boolean, + $guild_id: BigInt, + $fail_if_not_exists: Boolean, }, + $payload_json: String, + $file: Object, }; export interface MessageCreateSchema { - content: string; - nonce: number; - tts: boolean; - embed: {}; - allowed_mentions: []; - message_reference: { + content?: string; + nonce?: string; + tts?: boolean; + embed?: Embed & { timestamp: string }; + allowed_mentions?: []; + message_reference?: { message_id: bigint; channel_id: bigint; - guild_id: bigint; + guild_id?: bigint; fail_if_not_exists: boolean; }; + payload_json?: string; }