matterbridge-roborock-vacuum-plugin
Version:
Matterbridge Roborock Vacuum Plugin
41 lines • 1.63 kB
JavaScript
/** Repository for persisting and retrieving user data. */
export class UserDataRepository {
persist;
configManager;
logger;
constructor(persist, configManager, logger) {
this.persist = persist;
this.configManager = configManager;
this.logger = logger;
}
/** Load saved user data for the given username. */
async loadUserData(username) {
const savedUserData = (await this.persist.getItem('userData'));
if (!savedUserData) {
this.logger.debug('No saved userData found');
return undefined;
}
if (savedUserData.username === undefined || savedUserData.username === '' || savedUserData.username !== username) {
this.logger.debug('Saved userData username does not match, ignoring saved data');
await this.clearUserData();
return undefined;
}
if (savedUserData.region.toUpperCase() !== this.configManager.region.toUpperCase()) {
this.logger.debug('Saved userData region does not match current config, ignoring saved data');
await this.clearUserData();
return undefined;
}
this.logger.debug('Loading saved userData');
return savedUserData;
}
/** Save user data for future use. */
async saveUserData(userData) {
await this.persist.setItem('userData', userData);
this.logger.debug('User data saved successfully');
}
/** Clear saved user data. */
async clearUserData() {
await this.persist.removeItem('userData');
}
}
//# sourceMappingURL=UserDataRepository.js.map