import { Injectable } from '@angular/core';
import { MatSnackBar } from '@angular/material/snack-bar';

@Injectable({
  providedIn: 'root'
})
export class ValidationsService {

  constructor(
    private _MatSnackBar: MatSnackBar
  ) { }

  verificarDatos(respuesta: ResponseData): any[] {
    if (respuesta.error) {
      this.openSnackBar(respuesta.msg)
    } else if (respuesta.response.length == 0) {
      this.openSnackBar("No hay datos para mostrar")
    } else {
      return respuesta.response
    }
    return [];
  }

  verificarErrores(error: any) {
    if (!error.ok) {
      this.openSnackBar('Ocurrió un error inesperado');
    }
    if (error.error.msg != undefined) {
      this.openSnackBar(error.error.msg);
    }
    if (error.status == 408) {
      this.openSnackBar('Conexion lenta');
    }else if(error.message.includes("Http failure response for") && error.statusText === "Unknown Error"){
      this.openSnackBar('No se pudo conectar al servidor');
    }
  }

  openSnackBar(message: string, action: string = "Cerrar", timer: number = 4000) {
    this._MatSnackBar.open(message, action, {
      duration: timer
    });
  }

  verificarRegistros(respuesta: ResponseData) {
    if (!respuesta.error) {
      this.openSnackBar('¡Inicio de sesión exitoso!');
    } else {
      this.openSnackBar(respuesta.msg);
    }
  }
}

export interface ResponseData {
  error: Boolean,
  msg: string,
  response: any[]
}
