%PDF- %PDF-
Direktori : /home/emergentqj/actioncivile/pre-auth/def/static/js/reducers/ |
Current File : /home/emergentqj/actioncivile/pre-auth/def/static/js/reducers/resetPassword.js |
import { fromJS } from "immutable"; import i18next from "i18next"; import { isStage } from "constants/common"; import LIST_ACTIONS from "../constants/action_types"; export const STEPS = { RECEIVED_CODE_FORM: "RECEIVED_CODE_FORM", RESET_PASSWORD_FORM: "RESET_PASSWORD_FORM", RESET_PASSWORD_SUCCESS: "RESET_PASSWORD_SUCCESS", PHONE_EMAIL_FORM: "PHONE_EMAIL_FORM", LICENSE_PLATE_FORM: "SEND_LICENSE_PLATE", CANNOT_VERIFY: "CANNOT_VERIFY", }; const initialState = fromJS({ step: STEPS.PHONE_EMAIL_FORM, validationErrors: false, phoneNumber: null, confirmPhoneSent: false, pendingAccessToken: null, otpSentMsg: null, token: null, newPassword: null, pswValidationMsg: null, recoveryType: "sms", lockExpireDate: null, remainingAttempts: null, isOpenedWithToken: false, fullToken: null, }); const resetPassword = (state = initialState, action = {}) => { switch (action.type) { case LIST_ACTIONS.SET_RECOVERY_TYPE: return state.set("recoveryType", action.payload); case LIST_ACTIONS.RESET_RESTORE_PSW_SESSION: { return state .set("token", null) .set("step", STEPS.PHONE_EMAIL_FORM) .set("newPassword", null); } case LIST_ACTIONS.RESET_PASSWORD_SUCCESS: { return state .set("token", null) .set("step", STEPS.RESET_PASSWORD_SUCCESS) .set("newPassword", null); } case LIST_ACTIONS.RESET_PASSWORD_REQUEST: return state.set("pswValidationMsg", null); case LIST_ACTIONS.RESET_PASSWORD_ERROR: { console.log("err reset", action); /* eslint-disable-line no-console */ if (action.data.code === "VALIDATION_EXCEPTION") { return state.set("pswValidationMsg", action.data.message); } return state.set( "pswValidationMsg", i18next.t("sweet-alert.try-again"), ); } case LIST_ACTIONS.RESET_PASSWORD_TOKEN_SUCCESS: { // console.log("action", action); if (action.payload.data.status === "VALIDATION_EXCEPTION") { return state.set( "pswValidationMsg", action.payload.data.userErrorString, ); } return state .set("fullToken", null) .set("step", STEPS.RESET_PASSWORD_SUCCESS) .set("newPassword", null); } case LIST_ACTIONS.RESET_PASSWORD_TOKEN_REQUEST: return state.set("pswValidationMsg", null); case LIST_ACTIONS.RESET_PASSWORD_TOKEN_ERROR: { console.log("err reset", action); /* eslint-disable-line no-console */ if ( action && action.data && action.data.code && action.data.code === "VALIDATION_EXCEPTION" && action.data.message ) { return state.set("pswValidationMsg", action.data.message); } return state.set( "pswValidationMsg", i18next.t("sweet-alert.try-again"), ); } case LIST_ACTIONS.CANCEL_PHONE_SENT_CONFIRM: return state.set("confirmPhoneSent", false); case LIST_ACTIONS.GET_OTP_TOKEN_REQUEST: case LIST_ACTIONS.RESET_VALIDATION_ERRORS: case LIST_ACTIONS.SEND_OTP_TOKEN_REQUEST: return state.set("validationErrors", false); case LIST_ACTIONS.GET_OTP_TOKEN_SUCCESS: if (action.resent) { return state .set("confirmPhoneSent", true) .set("otpSentMsg", i18next.t("resetPassword.codeResent")); } return state.set("step", STEPS.RECEIVED_CODE_FORM).set("phoneNumber", action.data.phoneNumber); case LIST_ACTIONS.GET_OTP_TOKEN_ERROR: if (action.data) { return state .set(action.resent ? "confirmPhoneSent" : "validationErrors", true) .set("otpSentMsg", action.data) .set( "lockExpireDate", action.lockExpireDate ? action.lockExpireDate : null, ); } return state.set("step", STEPS.PHONE_EMAIL_FORM); case LIST_ACTIONS.GET_OTP_TOKEN_ERROR_USERNAME: if (action.data) { return state .set("validationErrors", true) .set("otpSentMsg", action.data); } return state.set("step", STEPS.RECEIVED_CODE_FORM); case LIST_ACTIONS.SEND_OTP_TOKEN_SUCCESS: if (action.payload.data.valid) { if (state.get("recoveryType") === "sms" && isStage) { if (action.payload.data.needValidation === "CANNOT_VERIFY") { return state .set("pendingAccessToken", action.payload.data.pendingAccessToken) .set("step", STEPS.CANNOT_VERIFY) .set("token", action.payload.data.token); } if (action.payload.data.needValidation === "VERIFICATION_NEEDED") { return state .set("pendingAccessToken", action.payload.data.pendingAccessToken) .set("step", STEPS.LICENSE_PLATE_FORM) .set("token", action.payload.data.token); } if (action.payload.data.needValidation === "VERIFICATION_NOT_NEEDED") { return state.set("step", STEPS.RESET_PASSWORD_FORM).set("token", action.payload.data.token); } } return state.set("step", STEPS.RESET_PASSWORD_FORM).set("token", action.payload.data.token); } return state.set("validationErrors", true); case LIST_ACTIONS.SEND_LICENSE_PLATE_SUCCESS: return state .set("step", STEPS.RESET_PASSWORD_FORM) .set("error", {}); case LIST_ACTIONS.SEND_LICENSE_PLATE_ERROR: return state.set("error", action.payload); case LIST_ACTIONS.SEND_OTP_TOKEN_ERROR: if (action.profileLocked) { return state .set("step", STEPS.PHONE_EMAIL_FORM) .set("validationErrors", true) .set("otpSentMsg", action.data) .set( "lockExpireDate", action.lockExpireDate ? action.lockExpireDate : null, ); } return state .set("validationErrors", true) .set("remainingAttempts", action.remainingAttempts); case LIST_ACTIONS.RESET_PASSWORD_WITH_TOKEN: return state .set("step", STEPS.RESET_PASSWORD_FORM) .set("isOpenedWithToken", true) .set("fullToken", action.payload); default: return state; } }; export default resetPassword;