From eed8b1dfcbdd7bc96c3ddde5036fe7fc8d979c17 Mon Sep 17 00:00:00 2001 From: ryanzhao Date: Tue, 14 Mar 2023 15:25:12 +1100 Subject: [PATCH] delete thread after leaving group succeeds --- .../Jobs/Types/GroupLeavingJob.swift | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/SessionMessagingKit/Jobs/Types/GroupLeavingJob.swift b/SessionMessagingKit/Jobs/Types/GroupLeavingJob.swift index 73e83aef7..dd8068b3f 100644 --- a/SessionMessagingKit/Jobs/Types/GroupLeavingJob.swift +++ b/SessionMessagingKit/Jobs/Types/GroupLeavingJob.swift @@ -93,6 +93,12 @@ public enum GroupLeavingJob: JobExecutor { .filter(GroupMember.Columns.profileId == userPublicKey) .deleteAll(db) } + + if details.deleteThreadAfterSuccess { + _ = try SessionThread + .filter(id: thread.id) + .deleteAll(db) + } } success(job, false) } @@ -121,19 +127,23 @@ extension GroupLeavingJob { private enum CodingKeys: String, CodingKey { case infoMessageInteractionId case groupPublicKey + case deleteThreadAfterSuccess } public let infoMessageInteractionId: Int64 public let groupPublicKey: String + public let deleteThreadAfterSuccess: Bool // MARK: - Initialization public init( infoMessageInteractionId: Int64, - groupPublicKey: String + groupPublicKey: String, + deleteThreadAfterSuccess: Bool ) { self.infoMessageInteractionId = infoMessageInteractionId self.groupPublicKey = groupPublicKey + self.deleteThreadAfterSuccess = deleteThreadAfterSuccess } // MARK: - Codable @@ -143,7 +153,8 @@ extension GroupLeavingJob { self = Details( infoMessageInteractionId: try container.decode(Int64.self, forKey: .infoMessageInteractionId), - groupPublicKey: try container.decode(String.self, forKey: .groupPublicKey) + groupPublicKey: try container.decode(String.self, forKey: .groupPublicKey), + deleteThreadAfterSuccess: try container.decode(Bool.self, forKey: .deleteThreadAfterSuccess) ) } @@ -152,6 +163,7 @@ extension GroupLeavingJob { try container.encode(infoMessageInteractionId, forKey: .infoMessageInteractionId) try container.encode(groupPublicKey, forKey: .groupPublicKey) + try container.encode(deleteThreadAfterSuccess, forKey: .deleteThreadAfterSuccess) } } }