mirror of
https://github.com/franjsco/tick3t
synced 2024-12-27 09:53:37 +01:00
feat(api): add user methods
This commit is contained in:
parent
63fbc39f4a
commit
7de2f82aea
47
src/api/user.js
Normal file
47
src/api/user.js
Normal file
@ -0,0 +1,47 @@
|
||||
import { config } from '../config';
|
||||
|
||||
|
||||
export const userAPI = {
|
||||
login,
|
||||
logout,
|
||||
};
|
||||
|
||||
function login(email, password) {
|
||||
const options = {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ email, password })
|
||||
}
|
||||
|
||||
return fetch(`${config.baseURL}users/login`, options)
|
||||
.then(handleResponse)
|
||||
.then(user => {
|
||||
localStorage.setItem('user', JSON.stringify(user));
|
||||
return user;
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
function logout() {
|
||||
localStorage.removeItem('user');
|
||||
}
|
||||
|
||||
|
||||
function handleResponse(response) {
|
||||
return response.text()
|
||||
.then(text => {
|
||||
const data = text && JSON.parse(text);
|
||||
|
||||
if (!response.ok) {
|
||||
if (response.status === 401) {
|
||||
logout();
|
||||
}
|
||||
|
||||
const error = (data && data.message) || response.statusText;
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
);
|
||||
};
|
Loading…
Reference in New Issue
Block a user