Fix duplicate error unwrapping

pull/12/head
Niels Andriesse 6 years ago
parent a743698386
commit a9a9800dd2

@ -718,12 +718,10 @@ static NSTimeInterval launchStartedAt;
[Environment.shared.contactsManager fetchSystemContactsOnceIfAlreadyAuthorized]; [Environment.shared.contactsManager fetchSystemContactsOnceIfAlreadyAuthorized];
[[AppEnvironment.shared.messageFetcherJob run] retainUntilComplete]; [[AppEnvironment.shared.messageFetcherJob run] retainUntilComplete];
[[LokiAPI getMessagesObjc] [[LokiAPI objc_getMessages].then(^(id result) {
.then(^(id result) { // TODO: Handle result
// TODO: handle result
}) }).catch(^(NSError *error) {
.catch(^(NSError *error) {
}) retainUntilComplete]; }) retainUntilComplete];
@ -1161,11 +1159,9 @@ static NSTimeInterval launchStartedAt;
{ {
OWSLogInfo(@"performing background fetch"); OWSLogInfo(@"performing background fetch");
[AppReadiness runNowOrWhenAppDidBecomeReady:^{ [AppReadiness runNowOrWhenAppDidBecomeReady:^{
[[LokiAPI getMessagesObjc] [[LokiAPI objc_getMessages].then(^(id result) {
.then(^(id result) {
completionHandler(UIBackgroundFetchResultNewData); completionHandler(UIBackgroundFetchResultNewData);
}) }).catch(^(NSError *error) {
.catch(^(NSError *error) {
completionHandler(UIBackgroundFetchResultFailed); completionHandler(UIBackgroundFetchResultFailed);
}) retainUntilComplete]; }) retainUntilComplete];

@ -66,24 +66,15 @@ import PromiseKit
} }
// MARK: Obj-C API // MARK: Obj-C API
@objc public static func getMessagesObjc() -> AnyPromise { @objc public static func objc_getMessages() -> AnyPromise {
let promise = getMessages() let promise = getMessages()
let anyPromise = AnyPromise(promise) let anyPromise = AnyPromise(promise)
anyPromise.retainUntilComplete() anyPromise.retainUntilComplete()
return anyPromise return anyPromise
} }
@objc public static func sendSignalMessage(_ signalMessage: SignalMessage, to destination: String, requiringPoW isPoWRequired: Bool) -> AnyPromise { @objc public static func objc_sendSignalMessage(_ signalMessage: SignalMessage, to destination: String, requiringPoW isPoWRequired: Bool) -> AnyPromise {
let promise = LokiMessage.fromSignalMessage(signalMessage, requiringPoW: isPoWRequired) let promise = LokiMessage.fromSignalMessage(signalMessage, requiringPoW: isPoWRequired).then(sendMessage)
.then(sendMessage)
.recover(on: DispatchQueue.global()) { error -> Promise<RawResponse> in
switch error {
case NetworkManagerError.taskError(_, let underlyingError):
throw underlyingError
default:
throw error
}
}
let anyPromise = AnyPromise(promise) let anyPromise = AnyPromise(promise)
anyPromise.retainUntilComplete() anyPromise.retainUntilComplete()
return anyPromise return anyPromise

@ -1111,31 +1111,27 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
// Convert the message to a Loki message and send it using the Loki messaging API // Convert the message to a Loki message and send it using the Loki messaging API
NSDictionary *signalMessage = deviceMessages.firstObject; NSDictionary *signalMessage = deviceMessages.firstObject;
BOOL isPoWRequired = YES; // TODO: Base on message type BOOL isPoWRequired = YES; // TODO: Base on message type
[[LokiAPI objc_sendSignalMessage:signalMessage to:recipient.recipientId requiringPoW:isPoWRequired]
[[LokiAPI sendSignalMessage:signalMessage to:recipient.recipientId requiringPoW:isPoWRequired]
.thenOn([OWSDispatch sendingQueue], ^(id result) { .thenOn([OWSDispatch sendingQueue], ^(id result) {
[self messageSendDidSucceed:messageSend [self messageSendDidSucceed:messageSend
deviceMessages:deviceMessages deviceMessages:deviceMessages
wasSentByUD:false wasSentByUD:false
wasSentByWebsocket:false]; wasSentByWebsocket:false];
}) })
.catchOn([OWSDispatch sendingQueue], ^(NSError *error) { .catchOn(OWSDispatch.sendingQueue, ^(NSError *error) {
NSUInteger statusCode = 0; NSUInteger statusCode = 0;
NSData *_Nullable responseData = nil; NSData *_Nullable responseData = nil;
if ([error.domain isEqualToString:TSNetworkManagerErrorDomain]) { if ([error.domain isEqualToString:TSNetworkManagerErrorDomain]) {
statusCode = error.code; statusCode = error.code;
NSError *_Nullable underlyingError = error.userInfo[NSUnderlyingErrorKey]; NSError *_Nullable underlyingError = error.userInfo[NSUnderlyingErrorKey];
if (underlyingError) { if (underlyingError) {
responseData responseData = underlyingError.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey];
= underlyingError.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey];
} else { } else {
OWSFailDebug(@"Missing underlying error: %@", error); OWSFailDebug(@"Missing underlying error: %@", error);
} }
} else { } else {
OWSFailDebug(@"Unexpected error: %@", error); OWSFailDebug(@"Unexpected error: %@", error);
} }
[self messageSendDidFail:messageSend [self messageSendDidFail:messageSend
deviceMessages:deviceMessages deviceMessages:deviceMessages
statusCode:statusCode statusCode:statusCode

Loading…
Cancel
Save