Files
whms-lte-fs/Presentation/ASPNET/wwwroot/lib/indotalent/storage-manager.js
T
2026-07-21 15:03:40 +07:00

107 lines
4.5 KiB
JavaScript
Vendored

const STORAGE_KEYS = {
ACCESS_TOKEN: 'accessToken',
REFRESH_TOKEN: 'refreshToken',
IS_AUTHENTICATED: 'isAuthenticated',
FIRST_NAME: 'firstName',
LAST_NAME: 'lastName',
EMAIL: 'email',
USER_ID: 'userId',
USER_ROLES: 'userRoles',
MENU_NAVIGATION: 'menuNavigation',
AVATAR: 'avatar',
COMPANY: 'company'
};
const StorageManager = {
save: (key, value) => {
try {
localStorage.setItem(key, JSON.stringify(value));
} catch (error) {
console.error('Failed to save data to localStorage', error);
}
},
get: (key) => {
try {
const value = localStorage.getItem(key);
return value ? JSON.parse(value) : null;
} catch (error) {
console.error('Failed to retrieve data from localStorage', error);
return null;
}
},
remove: (key) => {
try {
localStorage.removeItem(key);
} catch (error) {
console.error('Failed to remove data from localStorage', error);
}
},
clearStorage: () => {
try {
localStorage.clear();
} catch (error) {
console.error('Failed to clear localStorage', error);
}
},
saveAccessToken: (token) => StorageManager.save(STORAGE_KEYS.ACCESS_TOKEN, token),
getAccessToken: () => StorageManager.get(STORAGE_KEYS.ACCESS_TOKEN),
removeAccessToken: () => StorageManager.remove(STORAGE_KEYS.ACCESS_TOKEN),
saveRefreshToken: (token) => StorageManager.save(STORAGE_KEYS.REFRESH_TOKEN, token),
getRefreshToken: () => StorageManager.get(STORAGE_KEYS.REFRESH_TOKEN),
removeRefreshToken: () => StorageManager.remove(STORAGE_KEYS.REFRESH_TOKEN),
saveIsAuthenticated: (status) => StorageManager.save(STORAGE_KEYS.IS_AUTHENTICATED, status),
getIsAuthenticated: () => StorageManager.get(STORAGE_KEYS.IS_AUTHENTICATED),
removeIsAuthenticated: () => StorageManager.remove(STORAGE_KEYS.IS_AUTHENTICATED),
saveFirstName: (firstName) => StorageManager.save(STORAGE_KEYS.FIRST_NAME, firstName),
getFirstName: () => StorageManager.get(STORAGE_KEYS.FIRST_NAME),
removeFirstName: () => StorageManager.remove(STORAGE_KEYS.FIRST_NAME),
saveLastName: (lastName) => StorageManager.save(STORAGE_KEYS.LAST_NAME, lastName),
getLastName: () => StorageManager.get(STORAGE_KEYS.LAST_NAME),
removeLastName: () => StorageManager.remove(STORAGE_KEYS.LAST_NAME),
saveEmail: (email) => StorageManager.save(STORAGE_KEYS.EMAIL, email),
getEmail: () => StorageManager.get(STORAGE_KEYS.EMAIL),
removeEmail: () => StorageManager.remove(STORAGE_KEYS.EMAIL),
saveUserId: (userId) => StorageManager.save(STORAGE_KEYS.USER_ID, userId),
getUserId: () => StorageManager.get(STORAGE_KEYS.USER_ID),
removeUserId: () => StorageManager.remove(STORAGE_KEYS.USER_ID),
saveUserRoles: (roles) => StorageManager.save(STORAGE_KEYS.USER_ROLES, roles),
getUserRoles: () => StorageManager.get(STORAGE_KEYS.USER_ROLES),
removeUserRoles: () => StorageManager.remove(STORAGE_KEYS.USER_ROLES),
saveMenuNavigation: (navigations) => StorageManager.save(STORAGE_KEYS.MENU_NAVIGATION, navigations),
getMenuNavigation: () => StorageManager.get(STORAGE_KEYS.MENU_NAVIGATION),
removeMenuNavigation: () => StorageManager.remove(STORAGE_KEYS.MENU_NAVIGATION),
saveAvatar: (avatar) => StorageManager.save(STORAGE_KEYS.AVATAR, avatar),
getAvatar: () => StorageManager.get(STORAGE_KEYS.AVATAR),
removeAvatar: () => StorageManager.remove(STORAGE_KEYS.AVATAR),
saveCompany: (company) => StorageManager.save(STORAGE_KEYS.COMPANY, company),
getCompany: () => StorageManager.get(STORAGE_KEYS.COMPANY),
removeCompany: () => StorageManager.remove(STORAGE_KEYS.COMPANY),
saveLoginResult: (data) => {
StorageManager.saveAccessToken(data?.content?.data?.accessToken);
StorageManager.saveRefreshToken(data?.content?.data?.refreshToken);
StorageManager.saveFirstName(data?.content?.data?.firstName);
StorageManager.saveLastName(data?.content?.data?.lastName);
StorageManager.saveEmail(data?.content?.data?.email);
StorageManager.saveUserId(data?.content?.data?.userId);
StorageManager.saveUserRoles(data?.content?.data?.roles);
StorageManager.saveMenuNavigation(data?.content?.data?.menuNavigation);
StorageManager.saveIsAuthenticated(StorageManager.getUserId() != null);
StorageManager.saveAvatar(data?.content?.data?.avatar);
}
};