UNPKG

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
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 };