From b30d6f9addcb648fdc8cae8655b5f05a3dba3162 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Fri, 16 Apr 2021 10:44:23 +1000 Subject: [PATCH] Store V2 open group auth token promises per room --- .../Open Groups/V2/OpenGroupAPIV2.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/SessionMessagingKit/Open Groups/V2/OpenGroupAPIV2.swift b/SessionMessagingKit/Open Groups/V2/OpenGroupAPIV2.swift index 83b6a6671..176a4911c 100644 --- a/SessionMessagingKit/Open Groups/V2/OpenGroupAPIV2.swift +++ b/SessionMessagingKit/Open Groups/V2/OpenGroupAPIV2.swift @@ -4,7 +4,7 @@ import SessionSnodeKit @objc(SNOpenGroupAPIV2) public final class OpenGroupAPIV2 : NSObject { private static var moderators: [String:[String:Set]] = [:] // Server URL to room ID to set of moderator IDs - private static var authTokenPromise: Promise? + private static var authTokenPromises: [String:Promise] = [:] public static let defaultServer = "https://sessionopengroup.com" public static let defaultServerPublicKey = "658d29b91892a2389505596b135e76a53db6e11d613a51dbd3d0816adffb231b" @@ -125,7 +125,7 @@ public final class OpenGroupAPIV2 : NSObject { if let authToken = storage.getAuthToken(for: room, on: server) { return Promise.value(authToken) } else { - if let authTokenPromise = authTokenPromise { + if let authTokenPromise = authTokenPromises["\(server).\(room)"] { return authTokenPromise } else { let promise = requestNewAuthToken(for: room, on: server) @@ -140,11 +140,11 @@ public final class OpenGroupAPIV2 : NSObject { return promise } promise.done(on: DispatchQueue.global(qos: .userInitiated)) { _ in - authTokenPromise = nil + authTokenPromises["\(server).\(room)"] = nil }.catch(on: DispatchQueue.global(qos: .userInitiated)) { _ in - authTokenPromise = nil + authTokenPromises["\(server).\(room)"] = nil } - authTokenPromise = promise + authTokenPromises["\(server).\(room)"] = promise return promise } }