<?php
    ob_start();
    session_start();
    include '../config.php';
    if(isset($_COOKIE['persistPrivado']))
    {
        $userid = $_COOKIE['persistPrivado'];
        $_SESSION['user'] = $userid;
    }

    if(strlen($userid) < 5){
        //header("Location: ".$base_url);
        //exit();
    }
    date_default_timezone_set('America/Mexico_City');
    $correo = $userid;
    

    $code = trim($_GET['code']);
    $code = strip_tags($code);
    $code = htmlspecialchars($code);

    if(strlen($correo) > 5 && strlen($code) > 5){
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => $endpoint_graph_cms,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS =>'{"query":"query MyQuery {\\r\\n  codigosDobleFactor(where: {codigo: \\"'.$code.'\\"}) {\\r\\n    id\\r\\n codigo\\r\\n    correo\\r\\n    generado\\r\\n    usado\\r\\n  }\\r\\n}\\r\\n","variables":{}}',
        CURLOPT_HTTPHEADER => array(
          'Content-Type: application/json',
          'Cookie: __cfduid=da2693cdfd39b7377a8a05e305da45b8f1613001694'
        ),
      ));
      
    $response = curl_exec($curl);
    curl_close($curl);
    //echo $response;

    $jsonrespuesta = json_decode($response, true);
    $id = $jsonrespuesta['data']['codigosDobleFactor'][0]['id'];
    $generado = $jsonrespuesta['data']['codigosDobleFactor'][0]['generado'];
    $mailcode = $jsonrespuesta['data']['codigosDobleFactor'][0]['correo'];
    $usado= $jsonrespuesta['data']['codigosDobleFactor'][0]['usado'];


    if(strlen($usado)>5){

        echo "<p class='errormsg'>El código ingresado ya fue usado anteriormente. Por favor inicie sesión nuevamente para obtener un nuevo código.</p>
        <a href='/#login' id='resendcode'>Iniciar sesión</a><br><p id='resendcoderespuesta'></p>";
        exit();

    }
    $usado = time();
    //echo $id;

    $_SESSION['persistuserdf'] = $mailcode;
            //setcookie("persistLog", "$correo", time() + (20 * 2 * 12 * 60 * 60), "/", null, true, true);
    setcookie("persistuserdf", $mailcode, time()+ (60 * 60), '/');
    $sucess = "<p class='successmsg'>Inicio de sesión correcto ".$_COOKIE['persistuserdf'].", por favor espera un momento.</p><script>codeSuccess();</script>";
    $fail = "<p class='errormsg'>Ocurrió un error. Por favor inicie sesión nuevamente para obtener un nuevo código.</p> <a href='/#login' id='resendcode'>Iniciar sesión</a><br><p id='resendcoderespuesta'></p>";

    if(strlen($id)>10){
        $diff = intval($usado) - intval($generado);
        if($diff > (10*60 )){

            echo "<p class='errormsg'>El código ha expirado. Solicite un nuevo código a continuación.</p>
                    <a onclick='resendCode();' id='resendcode'>Reenviar Código</a><br><p id='resendcoderespuesta'></p>
            ";
            exit();

        }
        

        

        $curl2 = curl_init();

        curl_setopt_array($curl2, array(
            CURLOPT_URL => $endpoint_graph_cms,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'POST',

            CURLOPT_POSTFIELDS =>'{"query":"mutation MyMutation {\\r\\n  updateCodigoDobleFactor(data: {usado: \\"'.$usado.'\\", localizations: {update: {data: {usado: \\"'.$usado.'\\"}, locale: es_MX}}}, where: {id: \\"'.$id.'\\"}) {\\r\\n    id\\r\\n  }\\r\\n  unpublishCodigoDobleFactor(where: {id: \\"'.$id.'\\"}) {\\r\\n    id\\r\\n  }\\r\\n  publishCodigoDobleFactor(where: {id: \\"'.$id.'\\"}, locales: es_MX, to: PUBLISHED) {\\r\\n    id\\r\\n  }\\r\\n}","variables":{}}',
            CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Cookie: __cfduid=da2693cdfd39b7377a8a05e305da45b8f1613001694'
            ),
        ));

        $response2 = curl_exec($curl2);
        curl_close($curl);
        $jsonrespuesta2 = json_decode($response2, true);
        $id2 = $jsonrespuesta2['data']['updateCodigoDobleFactor']['id'];
        //echo $response;

        if(strlen($id2)>5){
            //termina mail
            echo $sucess;

            //echo "Cookie válida persistuserdf: ".$_COOKIE['persistuserdf'] .time();
        }
        else{
            echo $fail;
        }
    }
    else{
        echo "<p class='errormsg'>El código ingresado no es válido. <br>Verifíquelo o solicite uno nuevo e intente nuevamente.</p> <a onclick='resendCode();' id='resendcode'>Reenviar Código</a><br><p id='resendcoderespuesta'></p>";
    }   

    
  }
  ob_end_flush();