index.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { actionIsLoading } from '../../loading/action';
  2. import {
  3. actionLogInSuccess,
  4. actionLogInReject,
  5. actionLogOutSuccess,
  6. actionLogOutReject,
  7. } from '../action';
  8. import { loginGQL, registerGQL } from '../../../api-data';
  9. const asyncLogin = (login, password) => async dispatch => {
  10. try {
  11. dispatch(actionIsLoading(true));
  12. const token = await loginGQL(login, password);
  13. console.log(token);
  14. dispatch(actionLogInSuccess({ login, token }));
  15. } catch (e) {
  16. dispatch(actionLogInReject());
  17. } finally {
  18. dispatch(actionIsLoading(false));
  19. }
  20. };
  21. const asyncLogout = () => async dispatch => {
  22. try {
  23. dispatch(actionIsLoading(true));
  24. dispatch(actionLogOutSuccess());
  25. } catch (e) {
  26. dispatch(actionLogOutReject());
  27. } finally {
  28. dispatch(actionIsLoading(false));
  29. }
  30. };
  31. const asyncCreateUser = (login, password) => async dispatch => {
  32. try {
  33. dispatch(actionIsLoading(true));
  34. await registerGQL(login, password);
  35. const token = await loginGQL(login, password);
  36. console.log(token);
  37. dispatch(actionLogInSuccess({ login, token }));
  38. } catch (e) {
  39. console.error('Credentials have already used', e);
  40. } finally {
  41. dispatch(actionIsLoading(false));
  42. }
  43. };
  44. export { asyncLogin, asyncLogout, asyncCreateUser };