@@ -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