mirror of
				https://gitlab.com/comunic/comunicapiv2
				synced 2025-11-04 03:24:04 +00:00 
			
		
		
		
	Can delete a single conversation message
This commit is contained in:
		@@ -340,6 +340,22 @@ export class ConversationsController {
 | 
				
			|||||||
		h.success("Conversation message content successfully update");
 | 
							h.success("Conversation message content successfully update");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Delete a conversation message
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @param h Request handler
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public static async DeleteMessage(h: RequestHandler) {
 | 
				
			||||||
 | 
							const messageID = h.postInt("messageID");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if(!await ConversationsHelper.IsUserMessageOwner(h.getUserId(), messageID))
 | 
				
			||||||
 | 
								h.error(401, "You do not own this conversation message!");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							await ConversationsHelper.DeleteMessageById(messageID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							h.success("Conversation message has been successfully deleted!");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Get and return safely a conversation ID specified in a $_POST Request
 | 
						 * Get and return safely a conversation ID specified in a $_POST Request
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,6 +75,8 @@ export const Routes : Route[] = [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	{path: "/conversations/updateMessage", cb: (h) => ConversationsController.UpdateMessage(h)},
 | 
						{path: "/conversations/updateMessage", cb: (h) => ConversationsController.UpdateMessage(h)},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{path: "/conversations/deleteMessage", cb: (h) => ConversationsController.DeleteMessage(h)},
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Search controller
 | 
						// Search controller
 | 
				
			||||||
	{path: "/search/user", cb: (h) => SearchController.SearchUser(h)},
 | 
						{path: "/search/user", cb: (h) => SearchController.SearchUser(h)},
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -310,6 +310,26 @@ export class ConversationsHelper {
 | 
				
			|||||||
		})).map(m => this.DBToConversationMessage(convID, m));
 | 
							})).map(m => this.DBToConversationMessage(convID, m));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get information about a single conversation message
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @param messageID The ID of the message to get
 | 
				
			||||||
 | 
						 * @throws If the message was not found
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						private static async GetSingleMessage(messageID: number) : Promise<ConversationMessage> {
 | 
				
			||||||
 | 
							const row = await DatabaseHelper.QueryRow({
 | 
				
			||||||
 | 
								table: MESSAGES_TABLE,
 | 
				
			||||||
 | 
								where: {
 | 
				
			||||||
 | 
									id: messageID
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if(row == null)
 | 
				
			||||||
 | 
								throw Error("The message was not found!");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							return this.DBToConversationMessage(row.conv_id, row);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Get older messages of a conversation
 | 
						 * Get older messages of a conversation
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
@@ -565,6 +585,18 @@ export class ConversationsHelper {
 | 
				
			|||||||
		await this.RemoveMember(convID, memberID);
 | 
							await this.RemoveMember(convID, memberID);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Delete a conversation message identified by its ID
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @param id The ID of the message to delete
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public static async DeleteMessageById(id: number) {
 | 
				
			||||||
 | 
							// Get information about the message
 | 
				
			||||||
 | 
							const message = await this.GetSingleMessage(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							await this.DeleteMessage(message);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Delete a conversation message from the database
 | 
						 * Delete a conversation message from the database
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user