Skip to content

Commit 59bcfa4

Browse files
authored
Added API setSafetrackAPIURL (#1481)
1 parent d004be7 commit 59bcfa4

File tree

5 files changed

+127
-4
lines changed

5 files changed

+127
-4
lines changed

Branch-TestBed/Branch-SDK-Tests/BNCAPIServerTest.m

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,4 +409,107 @@ - (void)testSetAPIURL_InvalidEmpty {
409409
XCTAssertEqualObjects(storedUrl, expectedUrl);
410410
}
411411

412+
413+
- (void)testSetSafeTrackServiceURLWithUserTrackingDomain {
414+
NSString *url = @"https://links.toTestDomain.com";
415+
NSString *safeTrackUrl = @"https://links.toTestDomain-safeTrack.com";
416+
417+
[Branch setAPIUrl:url];
418+
[Branch setSafetrackAPIURL:safeTrackUrl];
419+
420+
BNCServerAPI *serverAPI = [BNCServerAPI sharedInstance];
421+
serverAPI.automaticallyEnableTrackingDomain = NO;
422+
serverAPI.useTrackingDomain = YES;
423+
424+
NSString *storedUrl = [[BNCServerAPI sharedInstance] installServiceURL];
425+
NSString *expectedUrl = @"https://links.toTestDomain-safeTrack.com/v1/install";
426+
XCTAssertEqualObjects(storedUrl, expectedUrl);
427+
428+
storedUrl = [[BNCServerAPI sharedInstance] openServiceURL];
429+
expectedUrl = @"https://links.toTestDomain-safeTrack.com/v1/open";
430+
XCTAssertEqualObjects(storedUrl, expectedUrl);
431+
432+
storedUrl = [[BNCServerAPI sharedInstance] standardEventServiceURL];
433+
expectedUrl = @"https://links.toTestDomain-safeTrack.com/v2/event/standard";
434+
XCTAssertEqualObjects(storedUrl, expectedUrl);
435+
436+
storedUrl = [[BNCServerAPI sharedInstance] customEventServiceURL];
437+
expectedUrl = @"https://links.toTestDomain-safeTrack.com/v2/event/custom";
438+
XCTAssertEqualObjects(storedUrl, expectedUrl);
439+
440+
storedUrl = [[BNCServerAPI sharedInstance] linkServiceURL];
441+
expectedUrl = @"https://links.toTestDomain.com/v1/url";
442+
XCTAssertEqualObjects(storedUrl, expectedUrl);
443+
444+
storedUrl = [[BNCServerAPI sharedInstance] qrcodeServiceURL];
445+
expectedUrl = @"https://links.toTestDomain.com/v1/qr-code";
446+
XCTAssertEqualObjects(storedUrl, expectedUrl);
447+
448+
storedUrl = [[BNCServerAPI sharedInstance] latdServiceURL];
449+
expectedUrl = @"https://links.toTestDomain.com/v1/cpid/latd";
450+
XCTAssertEqualObjects(storedUrl, expectedUrl);
451+
452+
storedUrl = [[BNCServerAPI sharedInstance] validationServiceURL];
453+
expectedUrl = @"https://links.toTestDomain.com/v1/app-link-settings";
454+
XCTAssertEqualObjects(storedUrl, expectedUrl);
455+
456+
[BNCServerAPI sharedInstance].useTrackingDomain = NO;
457+
[BNCServerAPI sharedInstance].useEUServers = NO;
458+
[BNCServerAPI sharedInstance].automaticallyEnableTrackingDomain = YES;
459+
[BNCServerAPI sharedInstance].customAPIURL = nil;
460+
[BNCServerAPI sharedInstance].customSafeTrackAPIURL = nil;
461+
462+
}
463+
464+
- (void)testSetSafeTrackServiceURLWithOutUserTrackingDomain {
465+
NSString *url = @"https://links.toTestDomain.com";
466+
NSString *safeTrackUrl = @"https://links.toTestDomain-safeTrack.com";
467+
468+
[Branch setAPIUrl:url];
469+
[Branch setSafetrackAPIURL:safeTrackUrl];
470+
471+
BNCServerAPI *serverAPI = [BNCServerAPI sharedInstance];
472+
serverAPI.automaticallyEnableTrackingDomain = NO;
473+
serverAPI.useTrackingDomain = NO;
474+
475+
NSString *storedUrl = [[BNCServerAPI sharedInstance] installServiceURL];
476+
NSString *expectedUrl = @"https://links.toTestDomain.com/v1/install";
477+
XCTAssertEqualObjects(storedUrl, expectedUrl);
478+
479+
storedUrl = [[BNCServerAPI sharedInstance] openServiceURL];
480+
expectedUrl = @"https://links.toTestDomain.com/v1/open";
481+
XCTAssertEqualObjects(storedUrl, expectedUrl);
482+
483+
storedUrl = [[BNCServerAPI sharedInstance] standardEventServiceURL];
484+
expectedUrl = @"https://links.toTestDomain.com/v2/event/standard";
485+
XCTAssertEqualObjects(storedUrl, expectedUrl);
486+
487+
storedUrl = [[BNCServerAPI sharedInstance] customEventServiceURL];
488+
expectedUrl = @"https://links.toTestDomain.com/v2/event/custom";
489+
XCTAssertEqualObjects(storedUrl, expectedUrl);
490+
491+
storedUrl = [[BNCServerAPI sharedInstance] linkServiceURL];
492+
expectedUrl = @"https://links.toTestDomain.com/v1/url";
493+
XCTAssertEqualObjects(storedUrl, expectedUrl);
494+
495+
storedUrl = [[BNCServerAPI sharedInstance] qrcodeServiceURL];
496+
expectedUrl = @"https://links.toTestDomain.com/v1/qr-code";
497+
XCTAssertEqualObjects(storedUrl, expectedUrl);
498+
499+
storedUrl = [[BNCServerAPI sharedInstance] latdServiceURL];
500+
expectedUrl = @"https://links.toTestDomain.com/v1/cpid/latd";
501+
XCTAssertEqualObjects(storedUrl, expectedUrl);
502+
503+
storedUrl = [[BNCServerAPI sharedInstance] validationServiceURL];
504+
expectedUrl = @"https://links.toTestDomain.com/v1/app-link-settings";
505+
XCTAssertEqualObjects(storedUrl, expectedUrl);
506+
507+
[BNCServerAPI sharedInstance].useTrackingDomain = NO;
508+
[BNCServerAPI sharedInstance].useEUServers = NO;
509+
[BNCServerAPI sharedInstance].automaticallyEnableTrackingDomain = YES;
510+
[BNCServerAPI sharedInstance].customAPIURL = nil;
511+
[BNCServerAPI sharedInstance].customSafeTrackAPIURL = nil;
512+
513+
}
514+
412515
@end

Sources/BranchSDK/BNCServerAPI.m

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,19 @@ - (NSString *)getBaseURLForLinkingEndpoints {
9494
}
9595

9696
- (NSString *)getBaseURL {
97-
//Check if user has set a custom API base URL
98-
if (self.customAPIURL) {
99-
return self.customAPIURL;
100-
}
10197

10298
if (self.automaticallyEnableTrackingDomain) {
10399
self.useTrackingDomain = [self optedIntoIDFA];
104100
}
105101

102+
//Check if user has set a custom API base URL / custom API safetrack base url
103+
if (self.useTrackingDomain && self.customSafeTrackAPIURL){
104+
return self.customSafeTrackAPIURL;
105+
}
106+
else if (self.customAPIURL) {
107+
return self.customAPIURL;
108+
}
109+
106110
NSString * urlString;
107111

108112
if (self.useTrackingDomain && self.useEUServers){

Sources/BranchSDK/Branch.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,14 @@ + (void)setAPIUrl:(NSString *)url {
490490
}
491491
}
492492

493+
+ (void)setSafetrackAPIURL:(NSString *)url {
494+
if ([url hasPrefix:@"http://"] || [url hasPrefix:@"https://"] ){
495+
[BNCServerAPI sharedInstance].customSafeTrackAPIURL = url;
496+
} else {
497+
[[BranchLogger shared] logWarning:@"Ignoring invalid custom Safe Track API URL" error:nil];
498+
}
499+
}
500+
493501
- (void)validateSDKIntegration {
494502
[self validateSDKIntegrationCore];
495503
}

Sources/BranchSDK/Private/BNCServerAPI.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ NS_ASSUME_NONNULL_BEGIN
3434
@property (nonatomic, assign, readwrite) BOOL automaticallyEnableTrackingDomain;
3535

3636
@property (nonatomic, copy, readwrite, nullable) NSString *customAPIURL;
37+
@property (nonatomic, copy, readwrite, nullable) NSString *customSafeTrackAPIURL;
3738

3839
@end
3940

Sources/BranchSDK/Public/Branch.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,6 +587,13 @@ Sets a custom base URL for all calls to the Branch API.
587587
*/
588588
+ (void)setAPIUrl:(NSString *)url;
589589

590+
/**
591+
Sets a custom base safetrack URL for non-linking calls to the Branch API.
592+
@param url Base safetrack URL that the Branch API will use.
593+
*/
594+
595+
+ (void)setSafetrackAPIURL:(NSString *)url ;
596+
590597
/**
591598
@brief Use the `validateSDKIntegration` method as a debugging aid to assure that you've
592599
integrated the Branch SDK correctly.

0 commit comments

Comments
 (0)