Skip to content

Commit

Permalink
feat: added enums to set data residency server
Browse files Browse the repository at this point in the history
  • Loading branch information
Desu Sai Venkat committed Aug 7, 2023
1 parent a12d4db commit 5add743
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -230,10 +230,8 @@ public RudderConfig getRudderConfig(Map<String, Object> configMap) {
.withTrackLifecycleEvents((Boolean) configMap.get("trackLifecycleEvents"))
.withRecordScreenViews((Boolean) configMap.get("recordScreenViews"))
.withControlPlaneUrl((String) configMap.get("controlPlaneUrl"));
String dataResidencyServer = (String) configMap.get("dataResidency");
if(dataResidencyServer.equals("US")){
builder.withDataResidencyServer(RudderDataResidencyServer.US);
} else{
String dataResidencyServer = (String) configMap.get("dataResidencyServer");
if (dataResidencyServer.equals("EU")) {
builder.withDataResidencyServer(RudderDataResidencyServer.EU);
}
if (integrationList != null) {
Expand Down
1 change: 1 addition & 0 deletions packages/plugins/rudder_plugin_interface/lib/platform.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
library rudder_sdk_flutter_platform_interface;

export 'src/constants.dart';
export 'src/enums.dart';
export 'src/rudder_logger.dart';
export 'src/models/rudder_config.dart';
export 'src/models/rudder_integration.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/*
* Default value holder class
* */
import 'enums.dart';

class Constants {
// how often config should be fetched from the server (in hours) (2 hrs by default)
static const int CONFIG_REFRESH_INTERVAL = 2;
Expand Down Expand Up @@ -31,7 +33,8 @@ class Constants {
// whether we should record screen views automatically
static const bool RECORD_SCREEN_VIEWS = false;

static const String DATA_RESIDENCY_VALUE = "US";
static const DataResidencyServer DEFAULT_DATA_RESIDENCY_SERVER =
DataResidencyServer.US;

//web load integration
static const bool DEFAULT_LOAD_INTEGRATION = true;
Expand Down
9 changes: 9 additions & 0 deletions packages/plugins/rudder_plugin_interface/lib/src/enums.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
enum DataResidencyServer {
US(residencyServer: "US"),
EU(residencyServer: "EU");

const DataResidencyServer({required this.residencyServer});

final String residencyServer;
String get getValue => residencyServer;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import '../constants.dart';
import '../rudder_logger.dart';
import '../utils.dart';
import '../enums.dart';
import 'rudder_integration.dart';

/*
Expand Down Expand Up @@ -32,7 +33,7 @@ class RudderConfig {
MobileConfig? mobileConfig,
WebConfig? webConfig,
String controlPlaneUrl, //all
String dataResidency,
DataResidencyServer dataResidencyServer,
List<RudderIntegration>? factories,
) {
RudderLogger.init(logLevel);
Expand Down Expand Up @@ -120,20 +121,9 @@ class RudderConfig {
_mobileConfigMap['controlPlaneUrl'] = controlPlaneUrl;
_webConfigMap['configUrl'] = controlPlaneUrl;
}
if (Utils.isEmpty(dataResidency)) {
RudderLogger.logError(
"dataResidency can not be null or empty. Set to default.");
_mobileConfigMap['dataResidency'] = Constants.DATA_RESIDENCY_VALUE;
_webConfigMap['dataResidency'] = Constants.DATA_RESIDENCY_VALUE;
} else if (dataResidency != "US" && dataResidency != "EU") {
RudderLogger.logError(
"dataResidency can not be anything other than US and EU. Set to default.");
_mobileConfigMap['dataResidency'] = Constants.DATA_RESIDENCY_VALUE;
_webConfigMap['dataResidency'] = Constants.DATA_RESIDENCY_VALUE;
} else {
_mobileConfigMap['dataResidency'] = dataResidency;
_webConfigMap['dataResidency'] = dataResidency;
}

_mobileConfigMap['dataResidencyServer'] = dataResidencyServer.getValue;
_webConfigMap['residencyServer'] = dataResidencyServer.getValue;

if (factories != null) {
for (RudderIntegration factory in factories) {
Expand Down Expand Up @@ -426,11 +416,11 @@ class RudderConfigBuilder {
return this;
}

String __dataResidency = Constants.DATA_RESIDENCY_VALUE;
RudderConfigBuilder withDataResidency(String dataResidency) {
if (dataResidency == "US" || dataResidency == "EU") {
__dataResidency = dataResidency;
}
DataResidencyServer __dataResidencyServer =
Constants.DEFAULT_DATA_RESIDENCY_SERVER;
RudderConfigBuilder withDataResidencyServer(
DataResidencyServer dataResidencyServer) {
__dataResidencyServer = dataResidencyServer;
return this;
}

Expand All @@ -444,7 +434,7 @@ class RudderConfigBuilder {
__mobileConfig,
__webConfig,
__controlPlaneUrl,
__dataResidency,
__dataResidencyServer,
__factories);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
selector:@selector(listenAppLaunchNotification:)
name:UIApplicationDidFinishLaunchingNotification
object:UIApplication.sharedApplication];
[RSLogger initiate:RSLogLevelWarning];
[RSLogger initiate:RSLogLevelWarning];
isRegistrarDetached = NO;
}

Expand Down Expand Up @@ -174,10 +174,8 @@ - (RSConfig*)getRudderConfigObject:(NSDictionary*)configDict {
withTrackLifecycleEvens:[[configDict objectForKey:@"trackLifecycleEvents"] boolValue]];
[configBuilder withRecordScreenViews:[[configDict objectForKey:@"recordScreenViews"] boolValue]];
[configBuilder withControlPlaneUrl:[configDict objectForKey:@"controlPlaneUrl"]];
NSString *dataResidencyServer = configDict[@"dataResidency"];
if ([dataResidencyServer isEqualToString:@"US"]) {
[configBuilder withDataResidencyServer:US];
} else {
NSString *dataResidencyServer = configDict[@"dataResidencyServer"];
if ([dataResidencyServer isEqualToString:@"EU"]) {
[configBuilder withDataResidencyServer:EU];
}
if (integrationList != nil) {
Expand Down

0 comments on commit 5add743

Please sign in to comment.