storj/web/satellite/src/utils/localData.ts

64 lines
1.9 KiB
TypeScript
Raw Normal View History

// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
/**
* LocalData exposes methods to manage local storage.
*/
export class LocalData {
private static userId: string = 'userId';
private static selectedProjectId: string = 'selectedProjectId';
private static userIdPassSalt: string = 'userIdPassSalt';
public static getUserId(): string | null {
return localStorage.getItem(LocalData.userId);
}
public static setUserId(id: string): void {
localStorage.setItem(LocalData.userId, id);
}
public static removeUserId(): void {
localStorage.removeItem(LocalData.userId);
}
public static getSelectedProjectId(): string | null {
return localStorage.getItem(LocalData.selectedProjectId);
}
public static setSelectedProjectId(id: string): void {
localStorage.setItem(LocalData.selectedProjectId, id);
}
public static removeSelectedProjectId(): void {
localStorage.removeItem(LocalData.selectedProjectId);
}
public static getUserIDPassSalt(): UserIDPassSalt | null {
const data: string | null = localStorage.getItem(LocalData.userIdPassSalt);
if (data) {
const parsed = JSON.parse(data);
return new UserIDPassSalt(parsed.userId, parsed.passwordHash, parsed.salt);
}
return null;
}
public static setUserIDPassSalt(id: string, passwordHash: string, salt: string): void {
const data = new UserIDPassSalt(id, passwordHash, salt);
localStorage.setItem(LocalData.userIdPassSalt, JSON.stringify(data));
}
}
/**
* UserIDPassSalt is an entity holding user id, password hash and salt to be stored in local storage.
*/
export class UserIDPassSalt {
public constructor(
public userId: string = '',
public passwordHash: string = '',
public salt: string = '',
) {}
}