Sha256: 6f05a81f58c2d9436c29ce36b80a44c9db835336bb0617b2c2e5722c7853fde8

Contents?: true

Size: 996 Bytes

Versions: 5

Compression:

Stored size: 996 Bytes

Contents

import API from 'api';
import config from 'redux/nodes/app/config';

const { actionTypes } = config;

const loginRequest = { type: actionTypes.LOGIN_REQUEST };
const loginFailure = { type: actionTypes.LOGIN_FAILURE };
const loginSuccess = (jwt) => {
  return { type: actionTypes.LOGIN_SUCCESS, payload: { jwt } };
};

const logoutRequest = { type: actionTypes.LOGOUT_REQUEST };
const logoutFailure = { type: actionTypes.LOGOUT_FAILURE };
const logoutSuccess = { type: actionTypes.LOGOUT_FAILURE };

const login = ({ email, password }) => {
  return (dispatch) => {
    dispatch(loginRequest);

    return API.sessions.create({ email, password })
      .then(({ jwt }) => dispatch(loginSuccess(jwt)))
      .catch(() => dispatch(loginFailure));
  };
};

const logout = () => {
  return (dispatch) => {
    dispatch(logoutRequest);

    return API.sessions.destroy()
      .then(() => dispatch(logoutSuccess))
      .catch(() => dispatch(logoutFailure));
  };
};

export default { login, logout };

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gnarails-1.0.0 templates/react/js/redux/nodes/app/actions.js
gnarails-0.9.3 templates/react/js/redux/nodes/app/actions.js
gnarails-0.9.2 templates/react/js/redux/nodes/app/actions.js
gnarails-0.9.1 templates/react/js/redux/nodes/app/actions.js
gnarails-0.9.0 templates/react/js/redux/nodes/app/actions.js