Make profile gets over websocket.

pull/1/head
Matthew Chen 7 years ago
parent 69b6eb9f4e
commit bb19505c6a

@ -12,6 +12,7 @@ public class ProfileFetcherJob: NSObject {
let TAG = "[ProfileFetcherJob]" let TAG = "[ProfileFetcherJob]"
let networkManager: TSNetworkManager let networkManager: TSNetworkManager
let socketManager: TSSocketManager
let primaryStorage: OWSPrimaryStorage let primaryStorage: OWSPrimaryStorage
// This property is only accessed on the main queue. // This property is only accessed on the main queue.
@ -33,6 +34,7 @@ public class ProfileFetcherJob: NSObject {
public init(networkManager: TSNetworkManager, ignoreThrottling: Bool = false) { public init(networkManager: TSNetworkManager, ignoreThrottling: Bool = false) {
self.networkManager = networkManager self.networkManager = networkManager
self.socketManager = TSSocketManager.shared()
self.primaryStorage = OWSPrimaryStorage.shared() self.primaryStorage = OWSPrimaryStorage.shared()
self.ignoreThrottling = ignoreThrottling self.ignoreThrottling = ignoreThrottling
} }
@ -113,8 +115,21 @@ public class ProfileFetcherJob: NSObject {
let (promise, fulfill, reject) = Promise<SignalServiceProfile>.pending() let (promise, fulfill, reject) = Promise<SignalServiceProfile>.pending()
self.networkManager.makeRequest( if self.socketManager.canMakeRequests {
request, self.socketManager.make(request,
success: { (responseObject: Any?) -> Void in
do {
let profile = try SignalServiceProfile(recipientId: recipientId, rawResponse: responseObject)
fulfill(profile)
} catch {
reject(error)
}
},
failure: { (_: NSInteger, error: Error) in
reject(error)
})
} else {
self.networkManager.makeRequest(request,
success: { (_: URLSessionDataTask?, responseObject: Any?) -> Void in success: { (_: URLSessionDataTask?, responseObject: Any?) -> Void in
do { do {
let profile = try SignalServiceProfile(recipientId: recipientId, rawResponse: responseObject) let profile = try SignalServiceProfile(recipientId: recipientId, rawResponse: responseObject)
@ -131,6 +146,7 @@ public class ProfileFetcherJob: NSObject {
reject(ProfileFetcherJobError.unknownNetworkError) reject(ProfileFetcherJobError.unknownNetworkError)
}) })
}
return promise return promise
} }

Loading…
Cancel
Save