// Fetches a single user from Github API. // Relies on the custom API middleware defined in ../middleware/api.js. const fetchUser = login => ({ [CALL_API]: { types: [ USER_REQUEST, USER_SUCCESS, USER_FAILURE ], endpoint: `users/${login}`, schema: Schemas.USER } })
export function signup(body) { return (dispatch, getState) => { const { isLoggedIn } = getState().user.isLoggedIn if (isLoggedIn) { return } return dispatch({ [CALL_API]: { types: [ SIGNUP_REQUEST, { type: SIGNUP_SUCCESS, payload: (action, state, res) => { return res.json().then((json) => { dispatch(push('/')) return normalize(json, {user: Schemas.USER}) }) } }, SIGNUP_FAILURE ], method: 'POST', endpoint: 'http://localhost:3000/api/signup', body: JSON.stringify(body), headers: { 'Content-Type': 'application/json' } } }) } }
export function login(body) { return (dispatch, getState) => { const { isLoggedIn } = getState().user.isLoggedIn if (isLoggedIn) { return } return dispatch({ [CALL_API]: { types: [ LOGIN_REQUEST, { type: LOGIN_SUCCESS, payload: (action, state, res) => { dispatch(push('/')) return res.json().then((json) => normalize(json, { user: Schemas.USER })) } }, LOGIN_FAILURE ], method: 'POST', endpoint: 'http://localhost:3000/api/login', body: JSON.stringify(body), headers: { 'Content-Type': 'application/json' } } }) } }
// Fetches a single user from Github API. // Relies on the custom API middleware defined in ../middleware/api.js. function fetchUser(login) { return { [CALL_API]: { types: [ USER_REQUEST, USER_SUCCESS, USER_FAILURE ], endpoint: `users/${login}`, schema: Schemas.USER } } }