diff --git a/src/angular-acl.js b/src/angular-acl.js index 5f3ea58..69003cf 100644 --- a/src/angular-acl.js +++ b/src/angular-acl.js @@ -2,6 +2,13 @@ var NG_HIDE_CLASS = 'ng-hide'; +const STORAGE_TYPES = { + sessionStorage: 'sessionStorage', + localStorage: 'localStorage' +}; + +const getStorageType = (value) => (STORAGE_TYPES[value]); + angular.module('mm.acl', []); angular.module('mm.acl').provider('AclService', [ @@ -58,52 +65,36 @@ angular.module('mm.acl').provider('AclService', [ * Persist data to storage based on config */ var save = function () { - switch (config.storage) { - case 'sessionStorage': - saveToStorage('sessionStorage'); - break; - case 'localStorage': - saveToStorage('localStorage'); - break; - default: - // Don't save - return; - } + let storageType = getStorageType(config.storage); + + return storageType && saveToStorage(storageType); }; var unset = function () { - switch (config.storage) { - case 'sessionStorage': - unsetFromStorage('sessionStorage'); - break; - case 'localStorage': - unsetFromStorage('localStorage'); - break; - default: - // Don't save - return; - } + let storageType = getStorageType(config.storage); + + return storageType && unsetFromStorage(storageType); }; /** * Persist data to web storage */ - var saveToStorage = function (storagetype) { - window[storagetype].setItem(config.storageKey, JSON.stringify(data)); + var saveToStorage = function (storageType) { + window[storageType].setItem(config.storageKey, JSON.stringify(data)); }; /** * Unset data from web storage */ - var unsetFromStorage = function (storagetype) { - window[storagetype].removeItem(config.storageKey); + var unsetFromStorage = function (storageType) { + window[storageType].removeItem(config.storageKey); }; /** * Retrieve data from web storage */ - var fetchFromStorage = function (storagetype) { - var data = window[storagetype].getItem(config.storageKey); + var fetchFromStorage = function (storageType) { + var data = window[storageType].getItem(config.storageKey); return (data) ? JSON.parse(data) : false; }; @@ -132,21 +123,12 @@ angular.module('mm.acl').provider('AclService', [ * @returns {boolean} */ function resume() { - var storedData; - - switch (config.storage) { - case 'sessionStorage': - storedData = fetchFromStorage('sessionStorage'); - break; - case 'localStorage': - storedData = fetchFromStorage('localStorage'); - break; - default: - storedData = null; - } - if (storedData) { - angular.extend(data, storedData); - return true; + let storageType = getStorageType(config.storage); + + if (storageType){ + let storedData = fetchFromStorage(storeType); + + return storedData ? angular.extend(data, storedData) && true : false; } return false;