open-consul/ui/packages/consul-ui/app/services/settings.js
John Cowen ef01ea18f1
ui: Run Ember native class code mod (#9093)
* ui: Apply native class codemod to all services

* ui: Apply native class codemod to routes

* ui: Apply native class codemod to controllers

* Fix up ember proxy `content` issue

* Add a CreateTime on policy creation

* Minor formatting

* Convert child based saving to use ec instead of custom approach

* Remove custom event source repo wrapping initializer

* Repos here are no longer proxy objects revert to using them normally

* Remove areas of code that were used to set up source backed repos
2020-11-09 09:25:35 +00:00

43 lines
1.1 KiB
JavaScript

import Service from '@ember/service';
import getStorage from 'consul-ui/utils/storage/local-storage';
const SCHEME = 'consul';
const storage = getStorage(SCHEME);
// promise aware assertion
export const ifNotBlocking = function(repo) {
return repo.findBySlug('client').then(function(settings) {
return typeof settings.blocking !== 'undefined' && !settings.blocking;
});
};
export default class SettingsService extends Service {
storage = storage;
findAll(key) {
return Promise.resolve(this.storage.all());
}
findBySlug(slug) {
return Promise.resolve(this.storage.getValue(slug));
}
persist(obj) {
const storage = this.storage;
Object.keys(obj).forEach((item, i) => {
storage.setValue(item, obj[item]);
});
return Promise.resolve(obj);
}
delete(obj) {
// TODO: Loop through and delete the specified keys
if (!Array.isArray(obj)) {
obj = [obj];
}
const storage = this.storage;
const item = obj.reduce(function(prev, item, i, arr) {
storage.removeValue(item);
return prev;
}, {});
return Promise.resolve(item);
}
}