Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. import {
  2. USER_LOGIN_SUCCESS, USER_LOGIN_FAILURE,
  3. USER_LOGOUT_SUCCESS, USER_LOGOUT_FAILURE,
  4. USER_DATA_SUCCESS, USER_DATA_FAILURE
  5. } from '../constants/actionTypes';
  6. import api from '../api/chartmill-rest';
  7.  
  8. export function login(username, password) {
  9. console.log('executing login...');
  10. return (dispatch, getState) => {
  11. if (getState().user.loggedIn) {
  12. return dispatch(loginFailure('Already logged in.'));
  13. }
  14. console.log('about to do the login api call');
  15. return api.login(username, password)
  16. .then(() => dispatch(loginSuccess))
  17. .catch(err => {
  18. dispatch(() => loginFailure(err === 401 ? 'Wrong credentials.' : 'Something went wrong.'));
  19. });
  20. };
  21. }
  22.  
  23. function loginSuccess() {
  24. console.log('executing `loginSuccess`');
  25. return dispatch => {
  26. dispatch(userData);
  27. dispatch({
  28. type: USER_LOGIN_SUCCESS,
  29. payload: {
  30. loggedIn: true,
  31. error: null
  32. }
  33. });
  34. };
  35. }
  36.  
  37. function loginFailure(msg) {
  38. console.log('executing `loginFailure`');
  39. return {
  40. type: USER_LOGIN_FAILURE,
  41. payload: {
  42. loggedIn: false,
  43. error: msg,
  44. data: {}
  45. }
  46. };
  47. }
  48.  
  49. export function userData() {
  50. return dispatch => {
  51. return api.getUserData()
  52. .then(data => dispatch(userDataSuccess(data)))
  53. .catch(() => dispatch(userDataFailure()));
  54. };
  55. }
  56.  
  57. export function logout() {
  58. return (dispatch, getState) => {
  59. if (!getState().user.loggedIn) {
  60. return dispatch(() => logoutFailure('Not logged in.'));
  61. }
  62. // TODO: logout api stuff
  63. return dispatch(logoutSuccess);
  64. };
  65. }
  66.  
  67. function logoutSuccess() {
  68. return {
  69. type: USER_LOGOUT_SUCCESS,
  70. payload: {
  71. data: {},
  72. loggedIn: false,
  73. error: null
  74. }
  75. };
  76. }
  77.  
  78. function logoutFailure(msg) {
  79. return {
  80. type: USER_LOGOUT_FAILURE,
  81. payload: {
  82. error: msg
  83. }
  84. };
  85. }
  86.  
  87. function userDataSuccess(data) {
  88. return {
  89. type: USER_DATA_SUCCESS,
  90. payload: {
  91. loggedIn: true,
  92. data
  93. }
  94. };
  95. }
  96.  
  97. function userDataFailure() {
  98. return {
  99. type: USER_DATA_FAILURE,
  100. payload: {
  101. loggedIn: false,
  102. data: {}
  103. }
  104. };
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement