Settings as clean architecture
This commit is contained in:
parent
0652131de8
commit
89c28d67fd
11 changed files with 176 additions and 33 deletions
31
src/background/usecases/setting.js
Normal file
31
src/background/usecases/setting.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
import Setting from '../domains/setting';
|
||||
import PersistentSettingRepository from '../repositories/persistent-setting';
|
||||
import SettingRepository from '../repositories/setting';
|
||||
|
||||
export default class SettingInteractor {
|
||||
constructor() {
|
||||
this.persistentSettingRepository = new PersistentSettingRepository();
|
||||
this.settingRepository = new SettingRepository();
|
||||
}
|
||||
|
||||
save(settings) {
|
||||
this.persistentSettingRepository.save(settings);
|
||||
}
|
||||
|
||||
get() {
|
||||
return this.settingRepository.get();
|
||||
}
|
||||
|
||||
async reload() {
|
||||
let settings = await this.persistentSettingRepository.load();
|
||||
if (!settings) {
|
||||
settings = Setting.defaultSettings();
|
||||
}
|
||||
|
||||
let value = settings.value();
|
||||
|
||||
this.settingRepository.update(value);
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
Reference in a new issue