Move message auto mod to the api route instead of a @beforeinsert/update method
This commit is contained in:
		
							parent
							
								
									d3d9f4ae2f
								
							
						
					
					
						commit
						f5b50ed3a8
					
				| @ -12,6 +12,8 @@ import { | ||||
| 	Snowflake, | ||||
| 	uploadFile, | ||||
| 	MessageCreateSchema, | ||||
| 	BannedWords, | ||||
| 	DiscordApiErrors, | ||||
| } from "@fosscord/util"; | ||||
| import { Router, Response, Request } from "express"; | ||||
| import multer from "multer"; | ||||
| @ -42,6 +44,10 @@ router.patch( | ||||
| 		const { message_id, channel_id } = req.params; | ||||
| 		var body = req.body as MessageCreateSchema; | ||||
| 
 | ||||
| 		if (body.content) | ||||
| 			if (BannedWords.find(body.content)) | ||||
| 				throw DiscordApiErrors.AUTOMODERATOR_BLOCK; | ||||
| 
 | ||||
| 		const message = await Message.findOneOrFail({ | ||||
| 			where: { id: message_id, channel_id }, | ||||
| 			relations: ["attachments"], | ||||
| @ -178,7 +184,7 @@ router.put( | ||||
| 			channel.save(), | ||||
| 		]); | ||||
| 
 | ||||
| 		postHandleMessage(message).catch((e) => {}); // no await as it shouldnt block the message send function and silently catch error
 | ||||
| 		postHandleMessage(message).catch((e) => { }); // no await as it shouldnt block the message send function and silently catch error
 | ||||
| 
 | ||||
| 		return res.json(message); | ||||
| 	}, | ||||
|  | ||||
| @ -15,6 +15,8 @@ import { | ||||
| 	Role, | ||||
| 	MessageCreateSchema, | ||||
| 	ReadState, | ||||
| 	BannedWords, | ||||
| 	DiscordApiErrors, | ||||
| } from "@fosscord/util"; | ||||
| import { HTTPError } from "lambert-server"; | ||||
| import { handleMessage, postHandleMessage, route } from "@fosscord/api"; | ||||
| @ -190,6 +192,10 @@ router.post( | ||||
| 		var body = req.body as MessageCreateSchema; | ||||
| 		const attachments: Attachment[] = []; | ||||
| 
 | ||||
| 		if (body.content) | ||||
| 			if (BannedWords.find(body.content)) | ||||
| 				throw DiscordApiErrors.AUTOMODERATOR_BLOCK; | ||||
| 
 | ||||
| 		const channel = await Channel.findOneOrFail({ | ||||
| 			where: { id: channel_id }, | ||||
| 			relations: ["recipients", "recipients.user"], | ||||
|  | ||||
| @ -5,8 +5,6 @@ import { Channel } from "./Channel"; | ||||
| import { InteractionType } from "../interfaces/Interaction"; | ||||
| import { Application } from "./Application"; | ||||
| import { | ||||
| 	BeforeInsert, | ||||
| 	BeforeUpdate, | ||||
| 	Column, | ||||
| 	CreateDateColumn, | ||||
| 	Entity, | ||||
| @ -23,8 +21,6 @@ import { Guild } from "./Guild"; | ||||
| import { Webhook } from "./Webhook"; | ||||
| import { Sticker } from "./Sticker"; | ||||
| import { Attachment } from "./Attachment"; | ||||
| import { BannedWords } from "../util"; | ||||
| import { HTTPError } from "lambert-server"; | ||||
| 
 | ||||
| export enum MessageType { | ||||
| 	DEFAULT = 0, | ||||
| @ -206,18 +202,6 @@ export class Message extends BaseClass { | ||||
| 
 | ||||
| 	@Column({ type: "simple-json", nullable: true }) | ||||
| 	components?: MessageComponent[]; | ||||
| 
 | ||||
| 	@BeforeUpdate() | ||||
| 	@BeforeInsert() | ||||
| 	validate() { | ||||
| 		if (this.content) { | ||||
| 			if (BannedWords.find(this.content)) | ||||
| 				throw new HTTPError( | ||||
| 					"Message was blocked by automatic moderation", | ||||
| 					200000, | ||||
| 				); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| export interface MessageComponent { | ||||
|  | ||||
| @ -973,6 +973,10 @@ export const DiscordApiErrors = { | ||||
| 		undefined, | ||||
| 		["5"], | ||||
| 	), | ||||
| 	AUTOMODERATOR_BLOCK: new ApiError( | ||||
| 		"Message was blocked by automatic moderation", | ||||
| 		200000, | ||||
| 	), | ||||
| 
 | ||||
| 	//Other errors
 | ||||
| 	UNKNOWN_VOICE_STATE: new ApiError("Unknown Voice State", 10065, 404), | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Madeline
						Madeline