Skip to content

Commit ced66d6

Browse files
committed
fix: remove userIdentities key expectation in native iOS logic
1 parent 9801934 commit ced66d6

File tree

1 file changed

+34
-29
lines changed

1 file changed

+34
-29
lines changed

ios/RNMParticle/RNMParticle.mm

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -651,23 +651,25 @@ - (MPIdentityApiRequest *)MPIdentityApiRequestFromDict:(NSDictionary *)dict {
651651
}
652652
MPIdentityApiRequest *request = [MPIdentityApiRequest requestWithEmptyUser];
653653

654-
if (dict[@"userIdentities"] && dict[@"userIdentities"] != [NSNull null]) {
655-
NSDictionary *identities = dict[@"userIdentities"];
656-
for (NSString *key in identities) {
657-
MPIdentity identityType = (MPIdentity)[key integerValue];
658-
NSString *value = identities[key];
659-
[request setIdentity:value identityType:identityType];
654+
for (NSString *key in dict) {
655+
id value = dict[key];
656+
if (value == [NSNull null]) {
657+
continue;
658+
}
659+
660+
if ([key isEqualToString:@"email"]) {
661+
request.email = (NSString *)value;
662+
} else if ([key isEqualToString:@"customerId"]) {
663+
request.customerId = (NSString *)value;
664+
} else {
665+
NSCharacterSet *numericSet = [NSCharacterSet decimalDigitCharacterSet];
666+
NSCharacterSet *keyCharacterSet = [NSCharacterSet characterSetWithCharactersInString:key];
667+
if ([numericSet isSupersetOfSet:keyCharacterSet]) {
668+
MPIdentity identityType = (MPIdentity)[key integerValue];
669+
[request setIdentity:(NSString *)value identityType:identityType];
670+
}
660671
}
661672
}
662-
663-
if (dict[@"customerId"] && dict[@"customerId"] != [NSNull null]) {
664-
request.customerId = dict[@"customerId"];
665-
}
666-
667-
if (dict[@"email"] && dict[@"email"] != [NSNull null]) {
668-
request.email = dict[@"email"];
669-
}
670-
671673
return request;
672674
}
673675

@@ -1091,21 +1093,24 @@ + (MPIdentityApiRequest *)MPIdentityApiRequest:(id)json {
10911093
NSDictionary *dict = json;
10921094
MPIdentityApiRequest *request = [MPIdentityApiRequest requestWithEmptyUser];
10931095

1094-
if (dict[@"userIdentities"] && dict[@"userIdentities"] != [NSNull null]) {
1095-
NSDictionary *identities = dict[@"userIdentities"];
1096-
for (NSString *key in identities) {
1097-
MPIdentity identityType = (MPIdentity)[key integerValue];
1098-
NSString *value = identities[key];
1099-
[request setIdentity:value identityType:identityType];
1096+
for (NSString *key in dict) {
1097+
id value = dict[key];
1098+
if (value == [NSNull null]) {
1099+
continue;
1100+
}
1101+
1102+
if ([key isEqualToString:@"email"]) {
1103+
request.email = (NSString *)value;
1104+
} else if ([key isEqualToString:@"customerId"]) {
1105+
request.customerId = (NSString *)value;
1106+
} else {
1107+
NSCharacterSet *numericSet = [NSCharacterSet decimalDigitCharacterSet];
1108+
NSCharacterSet *keyCharacterSet = [NSCharacterSet characterSetWithCharactersInString:key];
1109+
if ([numericSet isSupersetOfSet:keyCharacterSet]) {
1110+
MPIdentity identityType = (MPIdentity)[key integerValue];
1111+
[request setIdentity:(NSString *)value identityType:identityType];
1112+
}
11001113
}
1101-
}
1102-
1103-
if (dict[@"customerId"] && dict[@"customerId"] != [NSNull null]) {
1104-
request.customerId = dict[@"customerId"];
1105-
}
1106-
1107-
if (dict[@"email"] && dict[@"email"] != [NSNull null]) {
1108-
request.email = dict[@"email"];
11091114
}
11101115

11111116
return request;

0 commit comments

Comments
 (0)