<?php
// cms/api/users/activate.php

    header("Content-Type:application/json");
    include("../dbconn.php");
    include("../utils.php");
    
    // parametros obligatorios
    $parmsob = array("usr","hash");
    if (!parametrosValidos($_GET, $parmsob)){
        badEnd("400", array("msg"=>"Parametros obligatorios " . implode(", ", $parmsob)));
    }
    
    //Definicion de variables y almacenamiento de valores enviados por GET
    $out= new stdClass;
    $usr = $_GET["usr"];
    $hash = (int)$_GET["hash"];
    
    $sql = "SELECT usr, id FROM users WHERE UPPER(usr)=UPPER('".$usr."')";
    if (!$rs =$db->query($sql)){
        badEnd("500", array("sql"=>$sql,"msg"=>$db->error));
    }
    
    $row = $rs->fetch_assoc();
    
    // Retornamos 204 cuando la busqueda no obtiene resutados
    if($row["usr"] == null){
        badEnd("204", array("msg"=>"No se encuentra el registro"));
    }
    
    //Validamos el tiempo del hash
    $sql = "SELECT COUNT(id) AS qty FROM users ".
    "       WHERE UPPER(usr)=UPPER('".$usr."')".
    "       AND validthru > NOW()";
    if (!$rs =$db->query($sql)){
        badEnd("500", array("sql"=>$sql,"msg"=>$db->error));
    }
    
    $row = $rs->fetch_assoc();
    
    // Retornamos 401 cuando el codigo vencio
    if($row["qty"] == 0){
        badEnd("406", array("msg"=>"C¨®digo expirado"));
    }
    
    //Colocamos null el numero de activacion y activamos el usuario colocando como status = 1
    $sql = "UPDATE users SET".
    "       status = 1, ".
    "       terms = NOW(), " .
    "       activatenro = null".
    "       WHERE".
    "       UPPER(usr)=UPPER('".$usr."') ".
    "       AND validthru > NOW() ".
    "       AND activatenro=".$hash;
    if (!$db->query($sql))
        badEnd("500", array("msg"=>$db->error));
        
    if ($db->affected_rows == 0){
        badEnd("401", array("msg"=>"CombinaciÃ³n usr/hash incorrectos"));
    }
    
    $out->id = strtolower($usr);
    
    header("HTTP/1.1 200");
    echo (json_encode($out));
    die();
?>

