Settings as clean architecture

This commit is contained in:
Shin'ya Ueoka 2018-07-22 00:01:24 +09:00
parent 0652131de8
commit 89c28d67fd
11 changed files with 176 additions and 33 deletions

View 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;
}
}