1111#import " BranchConstants.h"
1212#import " BNCUrlQueryParameter.h"
1313#import " NSMutableDictionary+Branch.h"
14+ #import " BNCLog.h"
1415
1516@interface BNCReferringURLUtility ()
1617
@@ -41,7 +42,7 @@ - (void)parseReferringURL:(NSURL *)url {
4142 param.value = item.value ;
4243 param.timestamp = [NSDate date ];
4344 param.isDeepLink = YES ;
44-
45+
4546 // If there is no validity window, set to default.
4647 if (param.validityWindow == 0 ) {
4748 param.validityWindow = [self defaultValidityWindowForParam: item.name];
@@ -66,10 +67,7 @@ - (NSDictionary *)getURLQueryParamsForRequest:(NSString *)endpoint {
6667 if (gbraid) {
6768 [returnedParams bnc_safeAddEntriesFromDictionary: gbraid];
6869 }
69-
70- // For future parameters, their functions can be added here
7170
72- NSLog (@" Added following params to %@ : %@ " , endpoint, returnedParams);
7371 return returnedParams;
7472}
7573
@@ -100,7 +98,7 @@ - (NSDictionary *)addGbraidValuesFor:(NSString *)endpoint {
10098
10199 if ([endpoint containsString: @" /v1/open" ]) {
102100 returnedParams[BRANCH_REQUEST_KEY_IS_DEEPLINK_GBRAID] = @(gbraid.isDeepLink );
103- gbraid.isDeepLink = 0 ;
101+ gbraid.isDeepLink = NO ;
104102
105103 // Forcing write to disk
106104 [BNCPreferenceHelper sharedInstance ].referringURLQueryParameters = [self serializeToJson: self .urlQueryParameters];
@@ -114,7 +112,7 @@ - (NSDictionary *)addGbraidValuesFor:(NSString *)endpoint {
114112
115113// Helper Methods
116114- (BOOL )isSupportedQueryParameter : (NSString *)param {
117- NSArray *validURLQueryParameters = @[@" gbraid " , @" gclid " ];
115+ NSArray *validURLQueryParameters = @[BRANCH_REQUEST_KEY_REFERRER_GBRAID, BRANCH_REQUEST_KEY_GCLID ];
118116 if ([validURLQueryParameters containsObject: param]) {
119117 return YES ;
120118 } else {
@@ -145,11 +143,11 @@ - (NSMutableDictionary *)serializeToJson:(NSMutableDictionary<NSString *, BNCUrl
145143
146144 for (BNCUrlQueryParameter *param in urlQueryParameters.allValues ) {
147145 NSMutableDictionary *paramDict = [NSMutableDictionary new ];
148- paramDict[@" name " ] = param.name ;
149- paramDict[@" value " ] = param.value ;
150- paramDict[@" timestamp " ] = param.timestamp ;
151- paramDict[@" isDeepLink " ] = @(param.isDeepLink );
152- paramDict[@" validityWindow " ] = @(param.validityWindow );
146+ paramDict[BRANCH_URL_QUERY_PARAMETERS_NAME_KEY ] = param.name ;
147+ paramDict[BRANCH_URL_QUERY_PARAMETERS_VALUE_KEY ] = param.value ;
148+ paramDict[BRANCH_URL_QUERY_PARAMETERS_TIMESTAMP_KEY ] = param.timestamp ;
149+ paramDict[BRANCH_URL_QUERY_PARAMETERS_IS_DEEPLINK_KEY ] = @(param.isDeepLink );
150+ paramDict[BRANCH_URL_QUERY_PARAMETERS_VALIDITY_WINDOW_KEY ] = @(param.validityWindow );
153151
154152 json[param.name] = paramDict;
155153 }
@@ -164,11 +162,15 @@ - (NSMutableDictionary *)serializeToJson:(NSMutableDictionary<NSString *, BNCUrl
164162 if ([temp isKindOfClass: NSDictionary .class] || [temp isKindOfClass: NSMutableDictionary .class]) {
165163 NSDictionary *paramDict = (NSDictionary *)temp;
166164 BNCUrlQueryParameter *param = [BNCUrlQueryParameter new ];
167- param.name = paramDict[@" name" ];
168- param.value = paramDict[@" value" ];
169- param.timestamp = paramDict[@" timestamp" ];
170- param.isDeepLink = paramDict[@" isDeepLink" ];
171- param.validityWindow = [paramDict[@" validityWindow" ] doubleValue ];
165+ param.name = paramDict[BRANCH_URL_QUERY_PARAMETERS_NAME_KEY];
166+ param.value = paramDict[BRANCH_URL_QUERY_PARAMETERS_VALUE_KEY];
167+ param.timestamp = paramDict[BRANCH_URL_QUERY_PARAMETERS_TIMESTAMP_KEY];
168+ if (paramDict[BRANCH_URL_QUERY_PARAMETERS_IS_DEEPLINK_KEY] != nil ) {
169+ param.isDeepLink = ((NSNumber *)paramDict[BRANCH_URL_QUERY_PARAMETERS_IS_DEEPLINK_KEY]).boolValue ;
170+ } else {
171+ param.isDeepLink = NO ;
172+ }
173+ param.validityWindow = [paramDict[BRANCH_URL_QUERY_PARAMETERS_VALIDITY_WINDOW_KEY] doubleValue ];
172174
173175 result[param.name] = param;
174176 }
@@ -186,14 +188,14 @@ -(void)checkForAndMigrateOldGbraid {
186188 NSDate *existingGbraidInitDate = [BNCPreferenceHelper sharedInstance ].referrerGBRAIDInitDate ;
187189
188190 BNCUrlQueryParameter *gbraid = [BNCUrlQueryParameter new ];
189- gbraid.name = @" gbraid " ;
191+ gbraid.name = BRANCH_REQUEST_KEY_REFERRER_GBRAID ;
190192 gbraid.value = existingGbraidValue;
191193 gbraid.timestamp = existingGbraidInitDate;
192194 gbraid.validityWindow = existingGbraidValidityWindow;
193195 gbraid.isDeepLink = NO ;
194196
195- if (self.urlQueryParameters [@" gbraid " ].value == nil ) {
196- [self .urlQueryParameters setValue: gbraid forKey: @" gbraid " ];
197+ if (self.urlQueryParameters [BRANCH_REQUEST_KEY_REFERRER_GBRAID ].value == nil ) {
198+ [self .urlQueryParameters setValue: gbraid forKey: BRANCH_REQUEST_KEY_REFERRER_GBRAID ];
197199 [BNCPreferenceHelper sharedInstance ].referringURLQueryParameters = [self serializeToJson: self .urlQueryParameters];
198200 }
199201 }
0 commit comments