%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/emergentqj/actioncivile/pre-auth/.4cc3a2e1590a4463a5f392ddcc26929e/static/js/reducers/
Upload File :
Create Path :
Current File : /home/emergentqj/actioncivile/pre-auth/.4cc3a2e1590a4463a5f392ddcc26929e/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;

Zerion Mini Shell 1.0