Skip to content

Commit 99cf779

Browse files
committed
Add setLanguage Network calls
* Add OSRequestUpdateLanguage to Requests implementation * Add setLanguage method to OSUserStateSynchronizer, OSUserStateSMSSynchronizer and OSUserStateEmailSynchronizer using SMSAuthHashToken and EmailAuthHashToken * Add updateLanguage method to OSStateSynchronizer that retrieves channelId from userStateSynchronizer and executes simultaneous requests
1 parent 3d43fc0 commit 99cf779

File tree

8 files changed

+94
-0
lines changed

8 files changed

+94
-0
lines changed

iOS_SDK/OneSignalSDK/Source/OSStateSynchronizer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,7 @@ withSMSAuthHashToken:(NSString * _Nullable)hashToken
7676
withSuccess:(OSMultipleSuccessBlock _Nullable)successBlock
7777
onFailure:(OSMultipleFailureBlock _Nullable)failureBlock;
7878

79+
- (void)updateLanguage:(NSString * _Nonnull)language
80+
appId:(NSString * _Nonnull)appId;
81+
7982
@end

iOS_SDK/OneSignalSDK/Source/OSStateSynchronizer.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,4 +380,16 @@ - (void)callSMSSuccessBlockOnMainThread:(OSSMSSuccessBlock)successBlock withSMSN
380380
});
381381
}
382382
}
383+
384+
- (void)updateLanguage:(NSString * _Nonnull)language
385+
appId:(NSString * _Nonnull)appId {
386+
let stateSyncronizer = [self getStateSynchronizers];
387+
let requests = [NSMutableDictionary new];
388+
for (OSUserStateSynchronizer* userStateSynchronizer in stateSyncronizer) {
389+
requests[userStateSynchronizer.getChannelId] = [userStateSynchronizer setLanguage:language withAppId:appId];
390+
}
391+
392+
[OneSignalClient.sharedClient executeSimultaneousRequests:requests withSuccess:nil onFailure:nil];
393+
}
394+
383395
@end

iOS_SDK/OneSignalSDK/Source/OSUserStateEmailSynchronizer.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,9 @@ - (OSRequestUpdateExternalUserId *)setExternalUserId:(NSString *)externalId
9494
return [OSRequestUpdateExternalUserId withUserId:externalId withUserIdHashToken:hashToken withOneSignalUserId:[self getId] withEmailHashToken:[self getEmailAuthHashToken] appId:appId];
9595
}
9696

97+
- (OSRequestUpdateLanguage *)setLanguage:(NSString *)language
98+
withAppId:(NSString *)appId {
99+
return [OSRequestUpdateLanguage withUserId:[self getId] appId:appId language:language emailAuthToken:[self getEmailAuthHashToken] externalIdAuthToken:[self getExternalIdAuthHashToken]];
100+
}
101+
97102
@end

iOS_SDK/OneSignalSDK/Source/OSUserStateSMSSynchronizer.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@ - (OSRequestUpdateExternalUserId *)setExternalUserId:(NSString *)externalId
9898
return [OSRequestUpdateExternalUserId withUserId:externalId withUserIdHashToken:hashToken withOneSignalUserId:[self getId] withSMSHashToken:[self getSMSAuthHashToken] appId:appId];
9999
}
100100

101+
- (OSRequestUpdateLanguage *)setLanguage:(NSString *)language
102+
withAppId:(NSString *)appId {
103+
return [OSRequestUpdateLanguage withUserId:[self getId] appId:appId language:language smsAuthToken:[self getSMSAuthHashToken] externalIdAuthToken:[self getExternalIdAuthHashToken]];
104+
}
105+
101106
- (OSRequestSendTagsToServer *)sendTagsWithAppId:(NSString *)appId
102107
sendingTags:(NSDictionary *)tags
103108
networkType:(NSNumber *)networkType{

iOS_SDK/OneSignalSDK/Source/OSUserStateSynchronizer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ THE SOFTWARE.
5656
sendingTags:(NSDictionary * _Nonnull)tags
5757
networkType:(NSNumber * _Nonnull)networkType;
5858

59+
- (OSRequestUpdateLanguage * _Nonnull)setLanguage:(NSString * _Nonnull)language
60+
withAppId:(NSString * _Nonnull)appId;
61+
5962
- (OSRequestSendPurchases * _Nonnull)sendPurchases:(NSArray * _Nonnull)purchases
6063
appId:(NSString * _Nonnull)appId;
6164

iOS_SDK/OneSignalSDK/Source/OSUserStateSynchronizer.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ - (OSRequestUpdateExternalUserId *)setExternalUserId:(NSString *)externalId
5555
return [OSRequestUpdateExternalUserId withUserId:externalId withUserIdHashToken:hashToken withOneSignalUserId:[self getId] appId:appId];
5656
}
5757

58+
- (OSRequestUpdateLanguage *)setLanguage:(NSString *)language
59+
withAppId:(NSString *)appId {
60+
return [OSRequestUpdateLanguage withUserId:[self getId] appId:appId language:language emailAuthToken:[self getEmailAuthHashToken] externalIdAuthToken:[self getExternalIdAuthHashToken]];
61+
}
62+
5863
- (OSRequestSendTagsToServer *)sendTagsWithAppId:(NSString *)appId
5964
sendingTags:(NSDictionary *)tags
6065
networkType:(NSNumber *)networkType{

iOS_SDK/OneSignalSDK/Source/Requests.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,20 @@ NS_ASSUME_NONNULL_END
109109
+ (instancetype _Nonnull)withUserId:(NSString * _Nonnull)userId appId:(NSString * _Nonnull)appId location:(os_last_location * _Nonnull)coordinate networkType:(NSNumber * _Nonnull)netType backgroundState:(BOOL)backgroundState smsAuthHashToken:(NSString * _Nullable)smsAuthHash externalIdAuthToken:(NSString * _Nullable)externalIdAuthToken;
110110
@end
111111

112+
@interface OSRequestUpdateLanguage : OneSignalRequest
113+
+ (instancetype _Nonnull)withUserId:(NSString * _Nonnull)userId
114+
appId:(NSString * _Nonnull)appId
115+
language:(NSString * _Nonnull)language
116+
emailAuthToken:(NSString * _Nullable)emailAuthHash
117+
externalIdAuthToken:(NSString * _Nullable)externalIdAuthToken;
118+
119+
+ (instancetype _Nonnull)withUserId:(NSString * _Nonnull)userId
120+
appId:(NSString * _Nonnull)appId
121+
language:(NSString * _Nonnull)language
122+
smsAuthToken:(NSString * _Nullable)smsAuthToken
123+
externalIdAuthToken:(NSString * _Nullable)externalIdAuthToken;
124+
@end
125+
112126
@interface OSRequestBadgeCount : OneSignalRequest
113127
+ (instancetype _Nonnull)withUserId:(NSString * _Nonnull)userId
114128
appId:(NSString * _Nonnull)appId

iOS_SDK/OneSignalSDK/Source/Requests.m

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,53 @@ + (instancetype)withUserId:(NSString *)userId appId:(NSString *)appId location:(
376376
}
377377
@end
378378

379+
@implementation OSRequestUpdateLanguage
380+
381+
+ (instancetype _Nonnull)withUserId:(NSString * _Nonnull)userId
382+
appId:(NSString * _Nonnull)appId
383+
language:(NSString * _Nonnull)language
384+
emailAuthToken:(NSString * _Nullable)emailAuthHash
385+
externalIdAuthToken:(NSString * _Nullable)externalIdAuthToken {
386+
return [self withUserId:userId appId:appId language:language authToken:emailAuthHash authTokenKey:@"email_auth_hash" externalIdAuthToken:externalIdAuthToken];
387+
}
388+
389+
+ (instancetype)withUserId:(NSString *)userId
390+
appId:(NSString *)appId
391+
language:(NSString *)language
392+
smsAuthToken:(NSString *)smsAuthToken
393+
externalIdAuthToken:(NSString *)externalIdAuthToken {
394+
return [self withUserId:userId appId:appId language:language authToken:smsAuthToken authTokenKey:@"sms_auth_hash" externalIdAuthToken:externalIdAuthToken];
395+
}
396+
397+
+ (instancetype)withUserId:(NSString *)userId
398+
appId:(NSString *)appId
399+
language:(NSString *)language
400+
authToken:(NSString *)authToken
401+
authTokenKey:(NSString *)authTokenKey
402+
externalIdAuthToken:(NSString *)externalIdAuthToken {
403+
let request = [OSRequestUpdateLanguage new];
404+
405+
NSLog(@"Attempting Update to Language");
406+
407+
let params = [NSMutableDictionary new];
408+
params[@"app_id"] = appId;
409+
params[@"language"] = language;
410+
411+
if (authToken && authToken.length > 0 && authTokenKey)
412+
params[authTokenKey] = authToken;
413+
414+
if (externalIdAuthToken && externalIdAuthToken.length > 0)
415+
params[@"external_user_id_auth_hash"] = externalIdAuthToken;
416+
417+
request.parameters = params;
418+
request.method = PUT;
419+
request.path = [NSString stringWithFormat:@"players/%@", userId];
420+
421+
return request;
422+
}
423+
424+
@end
425+
379426
@implementation OSRequestBadgeCount
380427

381428
+ (instancetype _Nonnull)withUserId:(NSString * _Nonnull)userId

0 commit comments

Comments
 (0)