From 0130950050c36df462d36952627db4bf27d85f3f Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Tue, 20 Aug 2019 15:54:12 +1000 Subject: [PATCH] Add group chat authorization endpoint --- .../Registration/OnboardingController.swift | 2 +- .../src/Loki/API/LokiGroupChatAPI.swift | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Signal/src/ViewControllers/Registration/OnboardingController.swift b/Signal/src/ViewControllers/Registration/OnboardingController.swift index 81a4e853f..a6cee21b2 100644 --- a/Signal/src/ViewControllers/Registration/OnboardingController.swift +++ b/Signal/src/ViewControllers/Registration/OnboardingController.swift @@ -152,7 +152,7 @@ public class OnboardingController: NSObject { // from the "code verification" view. The "Captcha" view should always appear // immediately after the "phone number" view. while navigationController.viewControllers.count > 1 && - !(navigationController.topViewController is OnboardingAccountDetailsViewController) { + !(navigationController.topViewController is AccountDetailsViewController) { navigationController.popViewController(animated: false) } diff --git a/SignalServiceKit/src/Loki/API/LokiGroupChatAPI.swift b/SignalServiceKit/src/Loki/API/LokiGroupChatAPI.swift index 8c7a05bde..c34502902 100644 --- a/SignalServiceKit/src/Loki/API/LokiGroupChatAPI.swift +++ b/SignalServiceKit/src/Loki/API/LokiGroupChatAPI.swift @@ -18,7 +18,18 @@ public final class LokiGroupChatAPI : NSObject { } public enum Error : Swift.Error { - case messageParsingFailed + case tokenParsingFailed, messageParsingFailed + } + + public static func getEncryptedToken() -> Promise { + print("[Loki] Getting group chat auth token.") + let url = URL(string: "\(serverURL)/loki/v1/getToken")! + let parameters = [ "pubKey" : userHexEncodedPublicKey ] + let request = TSRequest(url: url, method: "POST", parameters: parameters) + return TSNetworkManager.shared().makePromise(request: request).map { $0.responseObject }.map { rawResponse in + guard let json = rawResponse as? JSON, let encryptedToken = json["cipherText64"] as? String else { throw Error.tokenParsingFailed } + return encryptedToken + } } public static func getMessages(for group: UInt) -> Promise<[LokiGroupMessage]> {