import { blockUI, unblockUI } from './index.js'; import { getEmailAvailability, getNomAvailaibility, loginUser, registerNewUser, setNomDeBid as setNomDeBidApi, } from '../api/profile.js'; import { DO_LOGOUT, LOGIN_FAILURE, LOGIN_SUCCESS, PROFILE_EMAIL_AVAILABLE, PROFILE_NOM_AVAILABLE, REGISTRATION_FAILURE, REGISTRATION_SUCCESS, SET_NOM_FAILURE, SET_NOM_SUCCESS, UNSET_AUTH, UNSET_PROFILE, UPDATE_PROFILE, } from '../constants/actionTypes.js'; import { getAuthToken } from '../selectors/auth.js'; import { getUserId } from '../selectors/profile.js'; const isValidEmail = (payload) => ({ type: PROFILE_EMAIL_AVAILABLE, payload, }); const isValidNom = (payload) => ({ type: PROFILE_NOM_AVAILABLE, payload, }); const loginFailure = (payload) => ({ type: LOGIN_FAILURE, payload, }); const loginSuccess = (payload) => ({ type: LOGIN_SUCCESS, payload, }); const logoutUser = () => ({ type: DO_LOGOUT, }); export const setNomFailure = ({ info }) => ({ type: SET_NOM_FAILURE, payload: info, }); export const setNomSuccess = ({ nomDeBid }) => ({ type: SET_NOM_SUCCESS, payload: nomDeBid, }); const registrationFailure = (payload) => ({ type: REGISTRATION_FAILURE, payload, }); const registrationSuccess = (payload) => ({ type: REGISTRATION_SUCCESS, payload, }); const unsetAuth = () => ({ type: UNSET_AUTH, }); const unsetProfile = () => ({ type: UNSET_PROFILE, }); const updateProfile = (profile) => ({ type: UPDATE_PROFILE, payload: profile, }); export const checkEmailAvailability = (email) => (dispatch) => {}; export const checkNomAvailability = (nomDeBid) => (dispatch) => {}; export const setNomDeBid = ({ nomDeBid }) => (dispatch, getState) => { const id = getUserId(getState()); const auth = getAuthToken(getState()); setNomDeBidApi({ id, nomDeBid }, auth) .then((result) => dispatch(setNomSuccess(result))) .catch((err) => dispatch(setNomFailure(err))); }; export const login = (username, password) => (dispatch) => { dispatch(blockUI()); loginUser(username, password) .then((result) => { dispatch(loginSuccess(result)); }) .catch((err) => dispatch(loginFailure(err))); }; export const logout = () => (dispatch) => { dispatch(unsetProfile()); dispatch(unsetAuth()); dispatch(logoutUser()); }; // USER REGISTRATION const handleRegistrationSuccess = (user) => (dispatch) => { dispatch(unblockUI()); dispatch(registrationSuccess()); dispatch(loginSuccess(user)); }; const handleRegistrationFailure = (error) => (dispatch) => { dispatch(unblockUI()); dispatch(registrationFailure(error)); }; export const registerUser = (user) => (dispatch) => { dispatch(blockUI()); registerNewUser(user) .then((user) => dispatch(handleRegistrationSuccess(user))) .catch((err) => dispatch(handleRegistrationFailure(err))); }; // FACEBOOK export const facebookLoginSuccess = (result) => (dispatch) => { console.log('facebookLoginSuccess', result); dispatch(facebookLoginSuccess(result)); }; // LOGIN SERVICES COMMON ACTIONS export const serviceRegistrationError = (error) => (dispatch) => {}; export const serviceRegistrationCanceled = () => (dispatch) => {};