Skip to content
This repository was archived by the owner on Jul 22, 2020. It is now read-only.

Commit 0882707

Browse files
authored
Update user functionality. (#39)
* Update user functionality. * pr updates
1 parent d7cafd5 commit 0882707

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed

Iterable-iOS-SDK/IterableAPI.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,20 @@ typedef NS_ENUM(NSInteger, PushServicePlatform) {
264264
*/
265265
- (void)disableDeviceForAllUsersWithOnSuccess:(OnSuccessHandler)onSuccess onFailure:(OnFailureHandler)onFailure;
266266

267+
/*!
268+
@method
269+
270+
@abstract Updates the available user fields
271+
272+
@param dataFields Data fields to store in the user profile
273+
@param mergeNestedObjects Merge top level objects instead of overwriting
274+
@param onSuccess OnSuccessHandler to invoke if disabling the token is successful
275+
@param onFailure OnFailureHandler to invoke if disabling the token fails
276+
277+
@see OnSuccessHandler
278+
@see OnFailureHandler
279+
*/
280+
- (void)updateUser:(NSDictionary *)dataFields mergeNestedObjects:(BOOL)mergeNestedObjects onSuccess:(OnSuccessHandler)onSuccess onFailure:(OnFailureHandler)onFailure;
267281

268282
/////////////////////////
269283
/// @name Tracking events

Iterable-iOS-SDK/IterableAPI.m

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,32 @@ - (void)disableDeviceForAllUsersWithOnSuccess:(OnSuccessHandler)onSuccess onFail
649649
return [self disableDevice:TRUE onSuccess:onSuccess onFailure:onFailure];
650650
}
651651

652+
// documented in IterableAPI.h
653+
- (void)updateUser:(NSDictionary *)dataFields mergeNestedObjects:(BOOL)mergeNestedObjects onSuccess:(OnSuccessHandler)onSuccess onFailure:(OnFailureHandler)onFailure
654+
{
655+
NSDictionary *args;
656+
if (dataFields) {
657+
NSNumber *mergeNested = [NSNumber numberWithBool:mergeNestedObjects];
658+
659+
if (_email != nil) {
660+
args = @{
661+
ITBL_KEY_EMAIL: self.email,
662+
ITBL_KEY_DATA_FIELDS: dataFields,
663+
ITBL_KEY_MERGE_NESTED: mergeNested
664+
};
665+
} else {
666+
args = @{
667+
ITBL_KEY_USER_ID: self.userId,
668+
ITBL_KEY_DATA_FIELDS: dataFields,
669+
ITBL_KEY_MERGE_NESTED: mergeNested
670+
};
671+
}
672+
673+
NSURLRequest *request = [self createRequestForAction:ENDPOINT_UPDATE_USER withArgs:args];
674+
[self sendRequest:request onSuccess:onSuccess onFailure:onFailure];
675+
}
676+
}
677+
652678
// documented in IterableAPI.h
653679
- (void)track:(NSString *)eventName
654680
{

Iterable-iOS-SDK/IterableConstants.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ extern NSString *const ITBL_KEY_DEVICE;
2222
extern NSString *const ITBL_KEY_EMAIL;
2323
extern NSString *const ITBL_KEY_EVENT_NAME;
2424
extern NSString *const ITBL_KEY_ITEMS;
25+
extern NSString *const ITBL_KEY_MERGE_NESTED;
2526
extern NSString *const ITBL_KEY_MESSAGE_ID;
2627
extern NSString *const ITBL_KEY_NEW_EMAIL;
2728
extern NSString *const ITBL_KEY_PLATFORM;

Iterable-iOS-SDK/IterableConstants.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ @implementation IterableConstants : NSObject
2121
NSString *const ITBL_KEY_EMAIL = @"email";
2222
NSString *const ITBL_KEY_EVENT_NAME = @"eventName";
2323
NSString *const ITBL_KEY_ITEMS = @"items";
24+
NSString *const ITBL_KEY_MERGE_NESTED = @"mergeNestedObjects";
2425
NSString *const ITBL_KEY_MESSAGE_ID = @"messageId";
2526
NSString *const ITBL_KEY_NEW_EMAIL = @"newEmail";
2627
NSString *const ITBL_KEY_PLATFORM = @"platform";

0 commit comments

Comments
 (0)