From b11bd6ea4625d9d144ea69b208ae7f56443ef3e4 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Tue, 4 Sep 2018 19:11:38 -0600 Subject: [PATCH] extract convenience intitializer for param parser --- .../src/Contacts/OWSContactDiscoveryOperation.swift | 4 +--- SignalServiceKit/src/Util/ParamParser.swift | 8 ++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/SignalServiceKit/src/Contacts/OWSContactDiscoveryOperation.swift b/SignalServiceKit/src/Contacts/OWSContactDiscoveryOperation.swift index 301965b6c..6e2c309c0 100644 --- a/SignalServiceKit/src/Contacts/OWSContactDiscoveryOperation.swift +++ b/SignalServiceKit/src/Contacts/OWSContactDiscoveryOperation.swift @@ -390,12 +390,10 @@ class CDSBatchOperation: OWSOperation { func parseAndDecrypt(response: Any?, remoteAttestation: RemoteAttestation) throws -> Data { - guard let responseDict = response as? [String: AnyObject] else { + guard let params = ParamParser(responseObject: response) else { throw ContactDiscoveryError.parseError(description: "missing response dict") } - let params = ParamParser(dictionary: responseDict) - let cipherText = try params.requiredBase64EncodedData(key: "data") let initializationVector = try params.requiredBase64EncodedData(key: "iv") let authTag = try params.requiredBase64EncodedData(key: "mac") diff --git a/SignalServiceKit/src/Util/ParamParser.swift b/SignalServiceKit/src/Util/ParamParser.swift index 9fea969f7..9a470ebb6 100644 --- a/SignalServiceKit/src/Util/ParamParser.swift +++ b/SignalServiceKit/src/Util/ParamParser.swift @@ -34,6 +34,14 @@ public class ParamParser { self.dictionary = dictionary } + public convenience init?(responseObject: Any?) { + guard let responseDict = responseObject as? [String: AnyObject] else { + return nil + } + + self.init(dictionary: responseDict) + } + // MARK: Errors public enum ParseError: Error {