refactoring: authentication with react-query.

This commit is contained in:
a.bouhuolia
2021-02-20 15:33:20 +02:00
parent 8f680e2068
commit a079f711d4
57 changed files with 1629 additions and 1290 deletions

View File

@@ -1,106 +1,14 @@
import ApiService from 'services/ApiService';
import t from 'store/types';
export function login({ form }) {
return (dispatch) =>
new Promise((resolve, reject) => {
ApiService.post('auth/login', form)
.then((response) => {
const { data } = response;
export const setLogin = ({ user, token, tenant }) => ({
type: t.LOGIN_SUCCESS,
payload: {
user,
token,
tenant,
},
});
if (data.token && data.user) {
dispatch({
type: t.LOGIN_SUCCESS,
payload: {
user: data.user,
token: data.token,
tenant: data.tenant,
},
});
}
resolve(response);
})
.catch((error) => {
const { response } = error;
const { data } = response;
const { errors = [] } = data;
reject(errors);
});
});
}
export const logout = () => {
return (dispatch) =>
dispatch({
type: t.LOGOUT,
});
};
export const register = ({ form }) => {
return (dispatch) => {
return new Promise((resolve, reject) => {
ApiService.post('auth/register', form)
.then((response) => {
resolve(response);
})
.catch((error) => {
reject(error.response.data.errors || []);
});
});
};
};
export const resetPassword = ({ form, token }) => {
return (dispatch) => {
return new Promise((resolve, reject) => {
ApiService.post(`auth/reset/${token}`, form)
.then((response) => {
resolve(response);
})
.catch((error) => {
reject(error.response.data.errors || []);
});
});
};
};
export const sendResetPassword = (email) => {
return (dispatch) => {
return new Promise((resolve, reject) => {
ApiService.post('auth/send_reset_password', email)
.then((response) => {
resolve(response);
})
.catch((error) => {
reject(error.response.data.errors || []);
});
});
};
};
export const inviteAccept = ({ form, token }) => {
return (dispatch) =>
new Promise((resolve, reject) => {
ApiService.post(`invite/accept/${token}`, { ...form })
.then((response) => {
resolve(response);
})
.catch((error) => {
reject(error.response.data.errors || []);
});
});
};
export const inviteMetaByToken = ({ token }) => {
return (dispatch) =>
new Promise((resolve, reject) => {
ApiService.get(`invite/invited/${token}`)
.then((response) => {
resolve(response);
})
.catch((error) => {
reject(error.response.data.errors || []);
});
});
};
export const setLogout = () => ({
type: t.LOGOUT,
});