parseRealtimeEnvUrl function
Parses the env url and returns its components
envUrl Environment url to parse returns Parsed environment url components
Implementation
RealtimeUrlConfig parseRealtimeEnvUrl(String envUrl) {
String temp;
String protocol;
if (envUrl.startsWith('https://')) {
temp = envUrl.replaceFirst('https://', '');
protocol = 'https://';
} else {
temp = envUrl.replaceFirst('http://', '');
protocol = 'http://';
}
var items = temp.split('.');
if (items.length == 4) {
var info = RealtimeUrlConfig.empty()..subdomain = items[0];
var posIndex = items[3].indexOf('/');
if (posIndex != -1) {
items[3] = items[3].substring(0, posIndex);
}
items[0] = 'realtime';
info.realtimeUrl = protocol + items.join('.');
return info;
}
if (items.length == 3) {
var posIndex = items[2].indexOf('/');
if (posIndex != -1) {
var info = RealtimeUrlConfig.empty();
var baseUrl = items[2].substring(posIndex);
items[2] = items[2].substring(0, posIndex);
if (items[0] == 'engine') {
items[0] = 'realtime';
} else {
items.insert(0, 'realtime');
}
info.realtimeUrl = protocol + items.join('.');
if ((baseUrl.startsWith('/e:')) || baseUrl.startsWith('/E:')) {
var segments = baseUrl.split('/');
var envIdStr = segments[1];
var segments2 = envIdStr.split(':');
info.envId = segments2[1].trim();
}
return info;
} else {
items.insert(0, 'realtime');
return RealtimeUrlConfig.empty()
..realtimeUrl = protocol + items.join('.');
}
}
return RealtimeUrlConfig.empty();
}