<?php namespace App\Http\Controllers;

use App\Custom\SQLConnection;
use App\Custom\Misc;

use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Request;

use DateTime;

class ErroresController extends Controller{

    // RETORNAR LA VIEW DE RESUMENES DE LOGS 

    public static function resumenes_login(){
        return view("/resumen_de_logs/resumenes_log");
    }


    //   RECIBE EL CONTENIDO POR LA LLAMADA ASINCRONICA Y MANDA EL JSON QUE CONTIENE LA INFORMACION QUE NECESITA EL GRID
    public static function devolver_contenido()
    {   
        //-> ESTA SECCION: SE DEBE VALIDAR PRIMERO EL POST Y LUEGO LA ASIGNACION A UN NOMBRE DE VARIABLE AMIGABLE, SINO NO ENTRA NUNCA AL 'else'
        if ( (self::validar_opcion($_POST["_opcion"]) or self::validar_opcion($_POST["_opcion"]) ) and self::validar_fecha($_POST["fecha_de"]) and self::validar_fecha($_POST["fecha_has"]) ){
            $action = $_POST["_opcion"];
            $fecha_desde = $_POST["fecha_de"];
            $fecha_hasta = $_POST["fecha_has"];
            return SQLConnection::manejador_log_errores($action,$fecha_desde,$fecha_hasta,"");
        }
        else{
            $seccion = "ErroresController";
            $nombre_de_funcion = "devolver_contenido";
            $mensaje = "Datos invalidos recibidos";
            SQLConnection::control_erores($seccion,$nombre_de_funcion,$mensaje);
            return "DATOS INVALIDOS";
        }
    }

    // ESTA FUNCION RECIBE EL ID DEL ELEMENTO Y LO BORRA DE LA BASE DE DATOS
    public static function borrar_datos()
    {
        //-> VALIDAR POST ANTES DE ASIGNAR
        if (self::validar_id($_POST["identidad"],$_POST["_opcion"])){
            $id = $_POST["identidad"];
            $action = $_POST["_opcion"];
            SQLConnection::manejador_log_errores($action,"","",$id);
            return "Lo logramos";
        }
        else {
            $seccion = "ErroresController";
            $nombre_de_funcion = "borrar_datos";
            $mensaje = "Datos invalidos recibidos";
            SQLConnection::control_erores($seccion,$nombre_de_funcion,$mensaje);
            return "No Se pudo cargar la informacion";
        }
        
    }

    // ESTA FUNCION ES LA ENCARGADA DE VALIDAR EL ID Y LA ACCION RECIBIDAS POR POST
    private static function validar_id($p,$n)
    {
        $expReg = "/\d{1,}/";
        if (preg_match($expReg,$p) and $n == "eliminar"){
            return TRUE;
        }
        else {
            return FALSE;
        }
    }
    // ESTA FUNCION ES LA ENCARGADA DE VALIDAR LA OPCION SI ES VER FECHAS O VER TODO
    private static function validar_opcion($p)
    {
        if ($p == "todo" or $p == "ver_fechas"){
            return TRUE;
        }
        else {
            return FALSE;
        }
    }

    // ESTA FUNCION ES INTERNA Y SU OBJETIVO ES VALIDAR SI EL FORMATO DE LA FECHA ES CORRECTO O NO
    private static function validar_fecha($p)
    {
        $expReg = "/^\d{4}\-\d{2}\-\d{2}/";
        if (preg_match($expReg,$p)){
            return TRUE;
        }
        else {
            return FALSE;
        }
    }
}