mirror of
https://github.com/bitwarden/browser.git
synced 2024-12-20 16:07:45 +01:00
settings service to ts
This commit is contained in:
parent
ee11bb5137
commit
2211c569d7
@ -5,7 +5,6 @@
|
|||||||
<script type="text/javascript" src="lib/tldjs/tld.js"></script>
|
<script type="text/javascript" src="lib/tldjs/tld.js"></script>
|
||||||
<script type="text/javascript" src="lib/forge/forge.js"></script>
|
<script type="text/javascript" src="lib/forge/forge.js"></script>
|
||||||
<script type="text/javascript" src="models/domainModels.js"></script>
|
<script type="text/javascript" src="models/domainModels.js"></script>
|
||||||
<script type="text/javascript" src="services/settingsService.js"></script>
|
|
||||||
<script type="text/javascript" src="services/folderService.js"></script>
|
<script type="text/javascript" src="services/folderService.js"></script>
|
||||||
<script type="text/javascript" src="services/cipherService.js"></script>
|
<script type="text/javascript" src="services/cipherService.js"></script>
|
||||||
<script type="text/javascript" src="services/syncService.js"></script>
|
<script type="text/javascript" src="services/syncService.js"></script>
|
||||||
|
@ -7,6 +7,7 @@ import EnvironmentService from './services/environment.service';
|
|||||||
import i18nService from './services/i18nService.js';
|
import i18nService from './services/i18nService.js';
|
||||||
import LockService from './services/lockService.js';
|
import LockService from './services/lockService.js';
|
||||||
import PasswordGenerationService from './services/passwordGeneration.service';
|
import PasswordGenerationService from './services/passwordGeneration.service';
|
||||||
|
import SettingsService from './services/settings.service';
|
||||||
import TokenService from './services/token.service';
|
import TokenService from './services/token.service';
|
||||||
import TotpService from './services/totp.service';
|
import TotpService from './services/totp.service';
|
||||||
import UserService from './services/user.service';
|
import UserService from './services/user.service';
|
||||||
@ -86,7 +87,7 @@ var bg_isBackground = true,
|
|||||||
window.bg_apiService = bg_apiService = new ApiService(bg_tokenService, logout);
|
window.bg_apiService = bg_apiService = new ApiService(bg_tokenService, logout);
|
||||||
window.bg_environmentService = bg_environmentService = new EnvironmentService(bg_apiService);
|
window.bg_environmentService = bg_environmentService = new EnvironmentService(bg_apiService);
|
||||||
window.bg_userService = bg_userService = new UserService(bg_tokenService);
|
window.bg_userService = bg_userService = new UserService(bg_tokenService);
|
||||||
window.bg_settingsService = bg_settingsService = new SettingsService(bg_userService, bg_utilsService);
|
window.bg_settingsService = bg_settingsService = new SettingsService(bg_userService);
|
||||||
window.bg_cipherService = bg_cipherService = new CipherService(bg_cryptoService, bg_userService, bg_apiService, bg_settingsService, bg_utilsService,
|
window.bg_cipherService = bg_cipherService = new CipherService(bg_cryptoService, bg_userService, bg_apiService, bg_settingsService, bg_utilsService,
|
||||||
bg_constantsService);
|
bg_constantsService);
|
||||||
window.bg_folderService = bg_folderService = new FolderService(bg_cryptoService, bg_userService, bg_apiService, bg_i18nService, bg_utilsService);
|
window.bg_folderService = bg_folderService = new FolderService(bg_cryptoService, bg_userService, bg_apiService, bg_i18nService, bg_utilsService);
|
||||||
|
61
src/services/settings.service.ts
Normal file
61
src/services/settings.service.ts
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
import UserService from './user.service';
|
||||||
|
import UtilsService from './utils.service';
|
||||||
|
|
||||||
|
const Keys = {
|
||||||
|
settingsPrefix: 'settings_',
|
||||||
|
equivalentDomains: 'equivalentDomains',
|
||||||
|
};
|
||||||
|
|
||||||
|
export default class SettingsService {
|
||||||
|
private settingsCache: any;
|
||||||
|
|
||||||
|
constructor(private userService: UserService) {
|
||||||
|
}
|
||||||
|
|
||||||
|
clearCache(): void {
|
||||||
|
this.settingsCache = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
getEquivalentDomains(): Promise<any> {
|
||||||
|
return this.getSettingsKey(Keys.equivalentDomains);
|
||||||
|
}
|
||||||
|
|
||||||
|
async setEquivalentDomains(equivalentDomains: any) {
|
||||||
|
await this.setSettingsKey(Keys.equivalentDomains, equivalentDomains);
|
||||||
|
}
|
||||||
|
|
||||||
|
async clear(userId: string): Promise<void> {
|
||||||
|
await UtilsService.removeFromStorage(Keys.settingsPrefix + userId);
|
||||||
|
this.settingsCache = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helpers
|
||||||
|
|
||||||
|
private async getSettings(): Promise<any> {
|
||||||
|
if (this.settingsCache == null) {
|
||||||
|
const userId = await this.userService.getUserId();
|
||||||
|
this.settingsCache = UtilsService.getObjFromStorage(Keys.settingsPrefix + userId);
|
||||||
|
}
|
||||||
|
return this.settingsCache;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async getSettingsKey(key: string): Promise<any> {
|
||||||
|
const settings = await this.getSettings();
|
||||||
|
if (settings != null && settings[key]) {
|
||||||
|
return settings[key];
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async setSettingsKey(key: string, value: any): Promise<void> {
|
||||||
|
const userId = await this.userService.getUserId();
|
||||||
|
let settings = await this.getSettings();
|
||||||
|
if (!settings) {
|
||||||
|
settings = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
settings[key] = value;
|
||||||
|
await UtilsService.saveObjToStorage(Keys.settingsPrefix + userId, settings);
|
||||||
|
this.settingsCache = settings;
|
||||||
|
}
|
||||||
|
}
|
@ -1,99 +0,0 @@
|
|||||||
function SettingsService(userService, utilsService) {
|
|
||||||
this.userService = userService;
|
|
||||||
this.utilsService = utilsService;
|
|
||||||
this.settingsCache = null;
|
|
||||||
|
|
||||||
initSettingsService();
|
|
||||||
}
|
|
||||||
|
|
||||||
function initSettingsService() {
|
|
||||||
SettingsService.prototype.clearCache = function () {
|
|
||||||
this.settingsCache = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
SettingsService.prototype.getSettings = function (callback) {
|
|
||||||
if (!callback || typeof callback !== 'function') {
|
|
||||||
throw 'callback function required';
|
|
||||||
}
|
|
||||||
|
|
||||||
var self = this;
|
|
||||||
|
|
||||||
if (self.settingsCache) {
|
|
||||||
callback(self.settingsCache);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.userService.getUserId().then(function (userId) {
|
|
||||||
var key = 'settings_' + userId;
|
|
||||||
chrome.storage.local.get(key, function (obj) {
|
|
||||||
self.settingsCache = obj[key];
|
|
||||||
callback(self.settingsCache);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
SettingsService.prototype.getEquivalentDomains = function (callback) {
|
|
||||||
var deferred = Q.defer();
|
|
||||||
|
|
||||||
getSettingsKey(this, 'equivalentDomains', function (domains) {
|
|
||||||
deferred.resolve(domains);
|
|
||||||
});
|
|
||||||
|
|
||||||
return deferred.promise;
|
|
||||||
};
|
|
||||||
|
|
||||||
function getSettingsKey(self, key, callback) {
|
|
||||||
if (!callback || typeof callback !== 'function') {
|
|
||||||
throw 'callback function required';
|
|
||||||
}
|
|
||||||
|
|
||||||
self.getSettings(function (settings) {
|
|
||||||
if (settings && settings[key]) {
|
|
||||||
callback(settings[key]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
callback(null);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
SettingsService.prototype.setEquivalentDomains = function (equivalentDomains, callback) {
|
|
||||||
setSettingsKey(this, 'equivalentDomains', equivalentDomains, callback);
|
|
||||||
};
|
|
||||||
|
|
||||||
function setSettingsKey(self, key, value, callback) {
|
|
||||||
if (!callback || typeof callback !== 'function') {
|
|
||||||
throw 'callback function required';
|
|
||||||
}
|
|
||||||
|
|
||||||
self.userService.getUserId().then(function (userId) {
|
|
||||||
var settingsKey = 'settings_' + userId;
|
|
||||||
|
|
||||||
self.getSettings(function (settings) {
|
|
||||||
if (!settings) {
|
|
||||||
settings = {};
|
|
||||||
}
|
|
||||||
settings[key] = value;
|
|
||||||
|
|
||||||
var obj = {};
|
|
||||||
obj[settingsKey] = settings;
|
|
||||||
|
|
||||||
chrome.storage.local.set(obj, function () {
|
|
||||||
self.settingsCache = settings;
|
|
||||||
callback();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
SettingsService.prototype.clear = function (userId) {
|
|
||||||
var self = this;
|
|
||||||
return self.utilsService.removeFromStorage('settings_' + userId).then(function () {
|
|
||||||
self.settingsCache = null;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
function handleError(error, deferred) {
|
|
||||||
deferred.reject(error);
|
|
||||||
}
|
|
||||||
}
|
|
@ -147,8 +147,6 @@ function initSyncService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function syncSettings(self, userId, response) {
|
function syncSettings(self, userId, response) {
|
||||||
var deferred = Q.defer();
|
|
||||||
|
|
||||||
var eqDomains = [];
|
var eqDomains = [];
|
||||||
if (response && response.equivalentDomains) {
|
if (response && response.equivalentDomains) {
|
||||||
eqDomains = eqDomains.concat(response.equivalentDomains);
|
eqDomains = eqDomains.concat(response.equivalentDomains);
|
||||||
@ -161,11 +159,7 @@ function initSyncService() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.settingsService.setEquivalentDomains(eqDomains, function () {
|
return self.settingsService.setEquivalentDomains(eqDomains);
|
||||||
deferred.resolve();
|
|
||||||
});
|
|
||||||
|
|
||||||
return deferred.promise;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SyncService.prototype.getLastSync = function (callback) {
|
SyncService.prototype.getLastSync = function (callback) {
|
||||||
|
Loading…
Reference in New Issue
Block a user