Skip to content

Commit 3089488

Browse files
author
Thomas Belin
authored
feat(core): Enable leaving federated conversations (#12078)
1 parent 17f7d6b commit 3089488

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/script/conversation/ConversationRepository.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1399,7 +1399,9 @@ export class ConversationRepository {
13991399
* @returns Resolves when member was removed from the conversation
14001400
*/
14011401
public async removeMember(conversationEntity: Conversation, user: QualifiedId) {
1402-
const response = await this.conversation_service.deleteMembers(conversationEntity.id, user.id);
1402+
const response = conversationEntity.isFederated()
1403+
? await this.conversation_service.deleteQualifiedMembers(conversationEntity.qualifiedId, user)
1404+
: await this.conversation_service.deleteMembers(conversationEntity.id, user.id);
14031405
const roles = conversationEntity.roles();
14041406
delete roles[user.id];
14051407
conversationEntity.roles(roles);

src/script/conversation/ConversationService.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,19 @@ export class ConversationService {
284284
return this.apiClient.conversation.api.deleteMember(conversationId, userId);
285285
}
286286

287+
/**
288+
* Remove member from federated conversation.
289+
*
290+
* @see https://staging-nginz-https.zinfra.io/swagger-ui/#!/conversations/removeMember
291+
*
292+
* @param conversationId Qualified ID of conversation to remove member from
293+
* @param userId Qualified ID of member to be removed from the the conversation
294+
* @returns Resolves with the server response
295+
*/
296+
deleteQualifiedMembers(conversationId: QualifiedId, userId: QualifiedId): Promise<ConversationMemberLeaveEvent> {
297+
return this.apiClient.conversation.api.deleteQualifiedMember(conversationId, userId);
298+
}
299+
287300
putMembers(conversationId: string, userId: string, data: ConversationOtherMemberUpdateData): Promise<void> {
288301
return this.apiClient.conversation.api.putOtherMember(userId, conversationId, data);
289302
}

0 commit comments

Comments
 (0)