mirror of
https://github.com/bitwarden/browser.git
synced 2025-02-22 02:21:34 +01:00
97 lines
2.6 KiB
JavaScript
97 lines
2.6 KiB
JavaScript
function EnvironmentService(constantsService, apiService) {
|
|
this.constantsService = constantsService;
|
|
this.apiService = apiService;
|
|
|
|
this.baseUrl = null;
|
|
this.webVaultUrl = null;
|
|
this.apiUrl = null;
|
|
this.identityUrl = null;
|
|
|
|
initEnvironmentService();
|
|
}
|
|
|
|
function initEnvironmentService() {
|
|
EnvironmentService.prototype.setUrlsFromStorage = function (callback) {
|
|
var self = this;
|
|
|
|
chrome.storage.local.get(self.constantsService.environmentUrlsKey, function (urlsObj) {
|
|
var urls = urlsObj[self.constantsService.environmentUrlsKey] || {
|
|
base: null,
|
|
api: null,
|
|
identity: null,
|
|
webVault: null
|
|
};
|
|
|
|
self.baseUrl = urls.base;
|
|
if (self.baseUrl) {
|
|
self.apiService.setUrls({
|
|
base: self.baseUrl
|
|
});
|
|
callback();
|
|
return;
|
|
}
|
|
|
|
self.webVaultUrl = urls.webVault;
|
|
self.apiUrl = urls.api;
|
|
self.identityUrl = urls.identity;
|
|
|
|
self.apiService.setUrls({
|
|
api: self.apiUrl,
|
|
identity: self.identityUrl
|
|
});
|
|
callback();
|
|
return;
|
|
});
|
|
};
|
|
|
|
EnvironmentService.prototype.setUrls = function (urls, callback) {
|
|
var self = this;
|
|
|
|
urls.base = formatUrl(urls.base);
|
|
urls.webVault = formatUrl(urls.webVault);
|
|
urls.api = formatUrl(urls.api);
|
|
urls.identity = formatUrl(urls.identity);
|
|
|
|
var urlsObj = {};
|
|
urlsObj[self.constantsService.environmentUrlsKey] = {
|
|
base: urls.base,
|
|
api: urls.api,
|
|
identity: urls.identity,
|
|
webVault: urls.webVault
|
|
};
|
|
|
|
chrome.storage.local.set(urlsObj, function () {
|
|
self.baseUrl = urls.base;
|
|
self.webVaultUrl = urls.webVault;
|
|
self.apiUrl = urls.api;
|
|
self.identityUrl = urls.identity;
|
|
|
|
if (self.baseUrl) {
|
|
self.apiService.setUrls({
|
|
base: self.baseUrl
|
|
});
|
|
}
|
|
else {
|
|
self.apiService.setUrls({
|
|
api: self.apiUrl,
|
|
identity: self.identityUrl
|
|
});
|
|
}
|
|
|
|
callback(urls);
|
|
});
|
|
};
|
|
|
|
function formatUrl(url) {
|
|
if (!url || url === '') {
|
|
return null;
|
|
}
|
|
|
|
url = url.replace(/\/+$/g, '');
|
|
if (!url.startsWith("http://") && !url.startsWith('https://')) {
|
|
url = 'https://' + url;
|
|
}
|
|
return url;
|
|
}
|
|
}
|