⚡ speed up message query
This commit is contained in:
		
							parent
							
								
									51274df43a
								
							
						
					
					
						commit
						85592a980e
					
				| @ -11,7 +11,7 @@ import { | |||||||
| 	Message, | 	Message, | ||||||
| 	MessageCreateEvent, | 	MessageCreateEvent, | ||||||
| 	uploadFile, | 	uploadFile, | ||||||
| 	Member, | 	Member | ||||||
| } from "@fosscord/util"; | } from "@fosscord/util"; | ||||||
| import { HTTPError } from "lambert-server"; | import { HTTPError } from "lambert-server"; | ||||||
| import { handleMessage, postHandleMessage, route } from "@fosscord/api"; | import { handleMessage, postHandleMessage, route } from "@fosscord/api"; | ||||||
| @ -187,40 +187,34 @@ router.post( | |||||||
| 
 | 
 | ||||||
| 		message = await message.save(); | 		message = await message.save(); | ||||||
| 
 | 
 | ||||||
| 		await channel.assign({ last_message_id: message.id }).save(); |  | ||||||
| 
 |  | ||||||
| 		//gosh
 |  | ||||||
| 		var member = await Member.findOneOrFail({ |  | ||||||
| 			where: { id: req.user_id }, |  | ||||||
| 		}); |  | ||||||
| 		await member.assign({ last_message_id: message.id }) |  | ||||||
| 		await member.save();	//why does member.assign here return void?
 |  | ||||||
| 
 |  | ||||||
| 		if (channel.isDm()) { | 		if (channel.isDm()) { | ||||||
| 			const channel_dto = await DmChannelDTO.from(channel); | 			const channel_dto = await DmChannelDTO.from(channel); | ||||||
| 
 | 
 | ||||||
| 			for (let recipient of channel.recipients!) { | 			//Only one recipients should be closed here, since in group DMs the recipient is deleted not closed
 | ||||||
|  | 
 | ||||||
|  | 			await Promise.all( | ||||||
|  | 				channel.recipients!.map((recipient) => { | ||||||
| 					if (recipient.closed) { | 					if (recipient.closed) { | ||||||
| 					await emitEvent({ | 						recipient.closed = false; | ||||||
|  | 						return Promise.all([ | ||||||
|  | 							recipient.save(), | ||||||
|  | 							emitEvent({ | ||||||
| 								event: "CHANNEL_CREATE", | 								event: "CHANNEL_CREATE", | ||||||
| 								data: channel_dto.excludedRecipients([recipient.user_id]), | 								data: channel_dto.excludedRecipients([recipient.user_id]), | ||||||
| 								user_id: recipient.user_id | 								user_id: recipient.user_id | ||||||
| 					}); | 							}) | ||||||
|  | 						]); | ||||||
| 					} | 					} | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			//Only one recipients should be closed here, since in group DMs the recipient is deleted not closed
 |  | ||||||
| 			await Promise.all( |  | ||||||
| 				channel |  | ||||||
| 					.recipients!.filter((r) => r.closed) |  | ||||||
| 					.map(async (r) => { |  | ||||||
| 						r.closed = false; |  | ||||||
| 						return await r.save(); |  | ||||||
| 				}) | 				}) | ||||||
| 			); | 			); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		await emitEvent({ event: "MESSAGE_CREATE", channel_id: channel_id, data: message } as MessageCreateEvent); | 		await Promise.all([ | ||||||
|  | 			channel.assign({ last_message_id: message.id }).save(), | ||||||
|  | 			new Member({ id: req.user_id, last_message_id: message.id }).save(), | ||||||
|  | 			emitEvent({ event: "MESSAGE_CREATE", channel_id: channel_id, data: message } as MessageCreateEvent) | ||||||
|  | 		]); | ||||||
|  | 
 | ||||||
| 		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); | 		return res.json(message); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Flam3rboy
						Flam3rboy