<template>
    <div class="container-fluid bg-white">
      <div class="row">
        <div class="col-sm-12 pt-5 text-center">
          <img :src="require('@/assets/images/loading2.gif')" class="" alt="" width="250px">
          <h5>Cargando... </h5>
        </div>
      </div>
    </div>
</template>

<script>
export default {
  name: "Loading",
  data() {
    return {
      datos: this.$route.params.datos,
      error: ""
    };
  },
  mounted () {
    if (this.datos === "error") {
      return this.alertError('Se ha producido un error al tratar de entrar al módulo de Quiosco.')
    }
    if (this.datos) {
      var datosBs64 = atob(this.datos);
      var datosParse = JSON.parse(datosBs64);

      var DIPERFIL =
        datosParse.PERFIL === "QUI.ADMINISTRADOR"
          ? "ADMINISTRADOR"
          : "COLABORADOR";
      var DINUM = datosParse.DINUM.trim();
      var DIPASS = atob(datosParse.PW).trim();

      if (DINUM !== "" && DIPASS !== "" && DIPERFIL !== "") {
        this.$store
          .dispatch("login", { DINUM, DIPASS, DIPERFIL })
          .then(resp => {
            this.$router.push("/");
          })
          .catch(err => {
            if (this.$store.getters.authStatus) {
              this.error = this.$store.getters.msgResponse;
              return this.alertError(this.$store.getters.msgResponse)
            }
            if (!err.data.response) {
              this.error = err.data.message;
            }
          });
      }else {
        return this.alertError('Parece que sus credenciales de inicio de sesión en este módulo no se pueden procesar correctamente, contacte al Departamento de Tecnologias de Informacion.');
      }
      
    }    
  },
  methods: {    
    alertError(mensaje) {
     return this.$swal({
        title: "Error",
        text: mensaje,
        type: "error",
        confirmButtonText: "Regresar",
        showCloseButton: false,
        showLoaderOnConfirm: true
      }).then(result => {
        if (result.value) {
          window.open(this.URL_SOLER, "_parent");
        }
      });      
    }
  },
};
</script>