Created
September 24, 2019 23:43
-
-
Save daviwesley/6020293618504596e962c9b2cabc6068 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// imagina que isso aqui é uma classe | |
const localStorageWrapper = { | |
set: (key, value) => localStorage.setItem(key, JSON.stringify(value)), | |
get: (key) => { | |
const value = localStorage.getItem(key) | |
return value ? JSON.parse(value) : value | |
} | |
} | |
const NS_USERS = "users"; | |
const NS_LOGGED_USER = "logged_user"; | |
// verifica se um usuário existe no localStorage | |
export const login = ({ username, password }) => { | |
const user = (localStorageWrapper.get(NS_USERS) || {})[username]; | |
if (!user || user.password !== password) { | |
throw new Error("Invalid User/Password"); | |
} | |
localStorageWrapper.set(NS_LOGGED_USER, user); | |
return true; | |
}; | |
// grava um usuário no localStorage | |
export const register = ({ username, password }) => { | |
const users = localStorageWrapper.get(NS_USERS) || {}; | |
if (users[username]) { | |
throw new Error("User already exists"); | |
} | |
const user = { | |
username, | |
password | |
}; | |
localStorageWrapper.set(NS_USERS, { | |
...users, | |
[username]: user | |
}); | |
return user; | |
}; | |
export const isLogged = () => !!localStorageWrapper.get(NS_LOGGED_USER); | |
export const logout = () => localStorageWrapper.set(NS_LOGGED_USER, null); | |
export const getUser = () => | |
isLogged && localStorageWrapper.get(NS_LOGGED_USER); | |
export default { | |
register, | |
login, | |
isLogged, | |
getUser | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment