From 00f1b53e614ab1eda9d78a8b3ada053df416b2bd Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 13 Apr 2017 10:10:38 -0400 Subject: [PATCH 1/2] Reduce usage of contacts intersection endpoint. // FREEBIE --- src/Contacts/ContactsUpdater.h | 3 +++ src/Contacts/ContactsUpdater.m | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Contacts/ContactsUpdater.h b/src/Contacts/ContactsUpdater.h index 255052e93..cf8a6a786 100644 --- a/src/Contacts/ContactsUpdater.h +++ b/src/Contacts/ContactsUpdater.h @@ -6,6 +6,9 @@ NS_ASSUME_NONNULL_BEGIN +extern NSString *const kContactsUpdaterErrorDomain; +extern const NSInteger kContactsUpdaterRateLimitErrorCode; + @class Contact; @interface ContactsUpdater : NSObject diff --git a/src/Contacts/ContactsUpdater.m b/src/Contacts/ContactsUpdater.m index 4373c0bf5..58652de55 100644 --- a/src/Contacts/ContactsUpdater.m +++ b/src/Contacts/ContactsUpdater.m @@ -14,6 +14,9 @@ NS_ASSUME_NONNULL_BEGIN +NSString *const kContactsUpdaterErrorDomain = @"kContactsUpdaterErrorDomain"; +const NSInteger kContactsUpdaterRateLimitErrorCode = 413; + @implementation ContactsUpdater + (instancetype)sharedUpdater { @@ -206,7 +209,15 @@ NS_ASSUME_NONNULL_BEGIN success([NSSet setWithArray:attributesForIdentifier.allKeys]); } failure:^(NSURLSessionDataTask *task, NSError *error) { - failure(error); + NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response; + if (response.statusCode == 413) { + NSString *const kContactsUpdaterErrorDomain = @"kContactsUpdaterErrorDomain"; + failure([NSError errorWithDomain:kContactsUpdaterErrorDomain + code:kContactsUpdaterRateLimitErrorCode + userInfo:nil]); + } else { + failure(error); + } }]; }); } From 715e9e85ff0f1710577c42c841810b586983ae87 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 13 Apr 2017 15:36:59 -0400 Subject: [PATCH 2/2] Respond to CR. // FREEBIE --- src/Contacts/ContactsUpdater.h | 3 --- src/Contacts/ContactsUpdater.m | 9 ++------- src/Util/OWSError.h | 1 + 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/Contacts/ContactsUpdater.h b/src/Contacts/ContactsUpdater.h index cf8a6a786..255052e93 100644 --- a/src/Contacts/ContactsUpdater.h +++ b/src/Contacts/ContactsUpdater.h @@ -6,9 +6,6 @@ NS_ASSUME_NONNULL_BEGIN -extern NSString *const kContactsUpdaterErrorDomain; -extern const NSInteger kContactsUpdaterRateLimitErrorCode; - @class Contact; @interface ContactsUpdater : NSObject diff --git a/src/Contacts/ContactsUpdater.m b/src/Contacts/ContactsUpdater.m index 58652de55..788de45ba 100644 --- a/src/Contacts/ContactsUpdater.m +++ b/src/Contacts/ContactsUpdater.m @@ -14,9 +14,6 @@ NS_ASSUME_NONNULL_BEGIN -NSString *const kContactsUpdaterErrorDomain = @"kContactsUpdaterErrorDomain"; -const NSInteger kContactsUpdaterRateLimitErrorCode = 413; - @implementation ContactsUpdater + (instancetype)sharedUpdater { @@ -211,10 +208,8 @@ const NSInteger kContactsUpdaterRateLimitErrorCode = 413; failure:^(NSURLSessionDataTask *task, NSError *error) { NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response; if (response.statusCode == 413) { - NSString *const kContactsUpdaterErrorDomain = @"kContactsUpdaterErrorDomain"; - failure([NSError errorWithDomain:kContactsUpdaterErrorDomain - code:kContactsUpdaterRateLimitErrorCode - userInfo:nil]); + failure(OWSErrorWithCodeDescription( + OWSErrorCodeContactsUpdaterRateLimit, OWSSignalServiceKitErrorDomain)); } else { failure(error); } diff --git a/src/Util/OWSError.h b/src/Util/OWSError.h index 691093b41..b770f0661 100644 --- a/src/Util/OWSError.h +++ b/src/Util/OWSError.h @@ -23,6 +23,7 @@ typedef NS_ENUM(NSInteger, OWSErrorCode) { OWSErrorCodeNoSuchSignalRecipient = 777404, OWSErrorCodeMessageSendDisabledDueToPreKeyUpdateFailures = 777405, OWSErrorCodeMessageSendFailedToBlockList = 777406, + OWSErrorCodeContactsUpdaterRateLimit = 777407, }; extern NSError *OWSErrorWithCodeDescription(OWSErrorCode code, NSString *description);