mirror of
https://gitlab.com/comunic/comunicapiv2
synced 2024-12-28 14:38:52 +00:00
Can delete a membership to a conversation
This commit is contained in:
parent
aeb561bd41
commit
fad098114a
@ -278,6 +278,22 @@ export class ConversationsHelper {
|
||||
})).map(m => this.DBToConversationMessage(convID, m));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the messages of a single user for a conversation
|
||||
*
|
||||
* @param convID Target conversation ID
|
||||
* @param userID Target user ID
|
||||
*/
|
||||
public static async GetUserMessagesForConversation(convID: number, userID: number): Promise<Array<ConversationMessage>> {
|
||||
return (await DatabaseHelper.Query({
|
||||
table: MESSAGES_TABLE,
|
||||
where: {
|
||||
conv_id: convID,
|
||||
user_id: userID
|
||||
}
|
||||
})).map(m => this.DBToConversationMessage(convID, m));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get older messages of a conversation
|
||||
*
|
||||
@ -464,11 +480,13 @@ export class ConversationsHelper {
|
||||
* @param convID Target conversation ID
|
||||
*/
|
||||
public static async RemoveUserFromConversation(userID: number, convID: number) {
|
||||
// Check whether the user is the owner of the conversation or not
|
||||
if(await this.IsUserModerator(userID, convID))
|
||||
await this.DeleteConversations(convID);
|
||||
//else
|
||||
// Delete the membersip fot
|
||||
// TODO : implement
|
||||
|
||||
else
|
||||
// Only delete the messages & membership of teh user
|
||||
await this.DeleteMember(convID, userID);
|
||||
|
||||
}
|
||||
|
||||
@ -479,9 +497,8 @@ export class ConversationsHelper {
|
||||
* @param convID The ID of the conversation to delete
|
||||
*/
|
||||
private static async DeleteConversations(convID: number) {
|
||||
// Get all the messages of the conversations
|
||||
// Get & delete all the messages of the conversations
|
||||
const messages = await this.GetNewMessages(convID, 0);
|
||||
|
||||
for (const message of messages) {
|
||||
await this.DeleteMessage(message);
|
||||
}
|
||||
@ -497,6 +514,23 @@ export class ConversationsHelper {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a conversation membership
|
||||
*
|
||||
* @param convID Target conversation
|
||||
* @param memberID Target user ID
|
||||
*/
|
||||
private static async DeleteMember(convID: number, memberID: number) {
|
||||
// Get & delete all the messages of the member
|
||||
const messages = await this.GetUserMessagesForConversation(convID, memberID);
|
||||
for (const message of messages) {
|
||||
await this.DeleteMessage(message);
|
||||
}
|
||||
|
||||
// Delete membership
|
||||
await this.RemoveMember(convID, memberID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a conversation message from the database
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user