ggez-banking-sdk
Version:
A Node.js package to handle GGEZ Banking API endpoints, Simplify the process of managing CRUD operations with this efficient and easy-to-use package.
109 lines (108 loc) • 2.97 kB
JavaScript
class LocalStorageHelper {
// #region "Properties"
get Count() {
return localStorage.length;
}
cookiesHelper;
cipherHelper;
errorHandler;
// #endregion
// #region "Constructor"
constructor(cookiesHelper, cipherHelper, errorHandler) {
this.errorHandler = errorHandler;
this.cookiesHelper = cookiesHelper;
this.cipherHelper = cipherHelper;
}
// #endregion
// #region "User Data"
async getUserData() {
try {
const IID = await this.cookiesHelper.getIID();
if (!IID)
return null;
const { key, iv } = this.cipherHelper.generateByInstallationID(IID);
const userData = this.get("CUD");
if (userData) {
const decryptedUserData = this.cipherHelper.decrypt(userData, key, iv);
if (decryptedUserData) {
return JSON.parse(decryptedUserData);
}
}
return null;
}
catch (error) {
this.errorHandler(error);
return null;
}
}
async setUserData(userData) {
try {
const IID = await this.cookiesHelper.getIID();
if (!IID)
return;
const { key, iv } = this.cipherHelper.generateByInstallationID(IID);
const data = JSON.stringify(userData);
const encryptedUserData = this.cipherHelper.encrypt(data, key, iv);
if (encryptedUserData) {
this.set("CUD", encryptedUserData);
}
}
catch (error) {
this.errorHandler(error);
return null;
}
}
// #endregion
// #region "Methods"
get(key) {
try {
return localStorage.getItem(key);
}
catch (error) {
this.errorHandler(error);
return null;
}
}
set(key, value) {
try {
localStorage.setItem(key, value);
}
catch (error) {
this.errorHandler(error);
return null;
}
}
remove(key) {
try {
localStorage.removeItem(key);
}
catch (error) {
this.errorHandler(error);
return null;
}
}
clear() {
localStorage.clear();
}
// #endregion
// #region "Utils"
setLocalStorageByUserData(data) {
if (data.preferences?.preferred_language_code) {
this.set("lang", data.preferences.preferred_language_code);
}
}
removeLocalStorageOnSignup() {
this.remove("promoCode");
this.remove("promotionData");
this.remove("referralCode");
}
removeLocalStorageOnLogout() {
this.remove("CUD");
}
clearLocalStorage() {
this.remove("CUD");
this.remove("currency");
this.remove("prefixCurrency");
}
}
export { LocalStorageHelper };