76 lines
3.0 KiB
TypeScript
76 lines
3.0 KiB
TypeScript
import { StorageOptions } from "jslib-common/models/domain/storageOptions";
|
|
import { StateService as BaseStateService } from "jslib-common/services/state.service";
|
|
|
|
import { Account } from "src/models/account";
|
|
import { BrowserComponentState } from "../models/browserComponentState";
|
|
import { BrowserGroupingsComponentState } from "../models/browserGroupingsComponentState";
|
|
import { BrowserSendComponentState } from "../models/browserSendComponentState";
|
|
import { StateService as StateServiceAbstraction } from "./abstractions/state.service";
|
|
|
|
export class StateService extends BaseStateService<Account> implements StateServiceAbstraction {
|
|
async getBrowserGroupingComponentState(
|
|
options?: StorageOptions
|
|
): Promise<BrowserGroupingsComponentState> {
|
|
return (await this.getAccount(this.reconcileOptions(options, this.defaultInMemoryOptions)))
|
|
?.groupings;
|
|
}
|
|
|
|
async setBrowserGroupingComponentState(
|
|
value: BrowserGroupingsComponentState,
|
|
options?: StorageOptions
|
|
): Promise<void> {
|
|
const account = await this.getAccount(
|
|
this.reconcileOptions(options, this.defaultInMemoryOptions)
|
|
);
|
|
account.groupings = value;
|
|
await this.saveAccount(account, this.reconcileOptions(options, this.defaultInMemoryOptions));
|
|
}
|
|
|
|
async getBrowserCipherComponentState(options?: StorageOptions): Promise<BrowserComponentState> {
|
|
return (await this.getAccount(this.reconcileOptions(options, this.defaultInMemoryOptions)))
|
|
?.ciphers;
|
|
}
|
|
|
|
async setBrowserCipherComponentState(
|
|
value: BrowserComponentState,
|
|
options?: StorageOptions
|
|
): Promise<void> {
|
|
const account = await this.getAccount(
|
|
this.reconcileOptions(options, this.defaultInMemoryOptions)
|
|
);
|
|
account.ciphers = value;
|
|
await this.saveAccount(account, this.reconcileOptions(options, this.defaultInMemoryOptions));
|
|
}
|
|
|
|
async getBrowserSendComponentState(options?: StorageOptions): Promise<BrowserSendComponentState> {
|
|
return (await this.getAccount(this.reconcileOptions(options, this.defaultInMemoryOptions)))
|
|
?.send;
|
|
}
|
|
|
|
async setBrowserSendComponentState(
|
|
value: BrowserSendComponentState,
|
|
options?: StorageOptions
|
|
): Promise<void> {
|
|
const account = await this.getAccount(
|
|
this.reconcileOptions(options, this.defaultInMemoryOptions)
|
|
);
|
|
account.send = value;
|
|
await this.saveAccount(account, this.reconcileOptions(options, this.defaultInMemoryOptions));
|
|
}
|
|
async getBrowserSendTypeComponentState(options?: StorageOptions): Promise<BrowserComponentState> {
|
|
return (await this.getAccount(this.reconcileOptions(options, this.defaultInMemoryOptions)))
|
|
?.sendType;
|
|
}
|
|
|
|
async setBrowserSendTypeComponentState(
|
|
value: BrowserComponentState,
|
|
options?: StorageOptions
|
|
): Promise<void> {
|
|
const account = await this.getAccount(
|
|
this.reconcileOptions(options, this.defaultInMemoryOptions)
|
|
);
|
|
account.sendType = value;
|
|
await this.saveAccount(account, this.reconcileOptions(options, this.defaultInMemoryOptions));
|
|
}
|
|
}
|