From 058260a21f0d9021d1fcceb4b670e8d88c7b88f1 Mon Sep 17 00:00:00 2001 From: Ian Macdonald Date: Tue, 24 Jan 2023 12:17:22 +0100 Subject: [PATCH] When purging while banning a user, also remove their emoji reactions. This expands on #2653 and ensures that when a user is banned from a room or an entire server, and **Delete All** has been selected, not just his messages but also his emoji reactions will be removed. This pull-request depends on oxen-io/session-pysogs#169. Verified working on `sog.caliban.org`. --- .../open_group_api/sogsv3/sogsV3BanUnban.ts | 8 +++++ .../open_group_api/sogsv3/sogsV3BatchPoll.ts | 29 ++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/ts/session/apis/open_group_api/sogsv3/sogsV3BanUnban.ts b/ts/session/apis/open_group_api/sogsv3/sogsV3BanUnban.ts index 295407d555..bcdb3b40ce 100644 --- a/ts/session/apis/open_group_api/sogsv3/sogsV3BanUnban.ts +++ b/ts/session/apis/open_group_api/sogsv3/sogsV3BanUnban.ts @@ -25,6 +25,10 @@ export const sogsV3BanUser = async ( type: 'deleteAllPosts', deleteAllPosts: { sessionId: userToBan.key, roomId: roomInfos.roomId }, }); + sequence.push({ + type: 'deleteAllReactions', + deleteAllReactions: { sessionId: userToBan.key, roomId: roomInfos.roomId }, + }); } const batchSendResponse = await sogsBatchSend( @@ -83,6 +87,10 @@ export const sogsV3ServerBanUser = async ( type: 'deleteAllUserPosts', deleteAllUserPosts: { sessionId: userToBan.key }, }); + sequence.push({ + type: 'deleteAllUserReactions', + deleteAllUserReactions: { sessionId: userToBan.key }, + }); } const batchSendResponse = await sogsBatchSend( diff --git a/ts/session/apis/open_group_api/sogsv3/sogsV3BatchPoll.ts b/ts/session/apis/open_group_api/sogsv3/sogsV3BatchPoll.ts index b729f73180..2d138f2e80 100644 --- a/ts/session/apis/open_group_api/sogsv3/sogsV3BatchPoll.ts +++ b/ts/session/apis/open_group_api/sogsv3/sogsV3BatchPoll.ts @@ -198,6 +198,21 @@ export type SubRequestDeleteAllUserServerPostsType = { }; }; +export type SubRequestDeleteAllUserReactionsType = { + type: 'deleteAllReactions'; + deleteAllReactions: { + sessionId: string; // can be blinded id or not + roomId: string; + }; +}; + +export type SubRequestDeleteAllUserServerReactionsType = { + type: 'deleteAllUserReactions'; + deleteAllUserReactions: { + sessionId: string; // can be blinded id or not + }; +}; + export type SubRequestUpdateRoomType = { type: 'updateRoom'; updateRoom: { @@ -226,7 +241,9 @@ export type OpenGroupBatchRow = | SubRequestAddRemoveModeratorType | SubRequestBanUnbanUserType | SubRequestDeleteAllUserPostsType + | SubRequestDeleteAllUserReactionsType | SubRequestDeleteAllUserServerPostsType + | SubRequestDeleteAllUserServerReactionsType | SubRequestUpdateRoomType | SubRequestDeleteReactionType; @@ -343,7 +360,17 @@ const makeBatchRequestPayload = ( method: 'DELETE', path: `/rooms/all/${options.deleteAllUserPosts.sessionId}`, }; - case 'updateRoom': + case 'deleteAllReactions': + return { + method: 'DELETE', + path: `/room/${options.deleteAllReactions.roomId}/all/reactions/${options.deleteAllReactions.sessionId}`, + }; + case 'deleteAllUserReactions': + return { + method: 'DELETE', + path: `/rooms/all/reactions/${options.deleteAllUserReactions.sessionId}`, + }; + case 'updateRoom': return { method: 'PUT', path: `/room/${options.updateRoom.roomId}`,