<?php

    session_start();
    if(isset($_COOKIE['persistID']))
    {
        $userid = $_COOKIE['persistID'];
        $_SESSION['user'] = $userid;
    }

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

    $code = trim($_POST['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 => 'https://api-us-east-1.graphcms.com/v2/ckkxmrn6cw3ga01ywc1spb2qu/master',
        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'];
    $usado= $jsonrespuesta['data']['codigosDobleFactor'][0]['usado'];

    if(strlen($usado)>5){

        echo "<p class='errormsg'>El código ingresado ya fue usado anteriormente. Si lo necesita, solicite un nuevo código a continuación.</p>
            <a onclick='resendCode();' id='resendcode'>Reenviar Código</a><br><p id='resendcoderespuesta'></p>";
        exit();

    }
    $usado = time();
    //echo $id;
    $sucess = "<p class='successmsg'>Inicio de sesión correcto, por favor espera un momento.</p><script>loginSuccess();</script>";
    $fail = "<p class='errormsg'>Ocurrió un error. Por favor solicite un nuevo código e intente nuevamente.</p> <a onclick='resendCode();' id='resendcode'>Reenviar Código</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();

        }
        $_SESSION['userLog'] = $correo;
        //setcookie("persistLog", "$correo", time() + (20 * 2 * 12 * 60 * 60), "/", null, true, true);
        setcookie("persistLog", "$correo", time()+ (1 * 2 * 12 * 60 * 60));

        $curl2 = curl_init();

        curl_setopt_array($curl2, array(
            CURLOPT_URL => 'https://api-us-east-1.graphcms.com/v2/ckkxmrn6cw3ga01ywc1spb2qu/master',
            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;
        }
        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>";
    }   

    
  }