<?php

/**
 * memCacheHandler actions.
 *
 * @package    nomina
 * @subpackage memCacheHandler
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class memCacheHandlerActions extends sfActions {

    /**
     * Lectura de progreso con Memcache
     *
     * @param sfRequest $request A request object
     */
    public function executeList(sfWebRequest $request) {

        //Revisar que sea post
        //$this->forward404Unless($request->isMethod('post'));
        //Guardar los parametros del request en el log
        $this->logMessage("---BEGIN Logging request");
        foreach ($request->getPostParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("--------------------------------------------------* Ip: " . $_SERVER['REMOTE_ADDR']);
        foreach ($request->getGetParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("---END Logging request");

        try {

            /*
             * Variables de filtro
             */
            $progress_key = $request['progress_key'] . $request['username'];

            /*
             *  En el servicio
             */

            // Obtener un valor, por ejemplo, cuando llega la llave por GET
            $result = MemcacheHandler::getInstance()->get($progress_key);

            $this->status = 0;
            // Pintar el json de resultado
            $this->list_data = array();
            if (isset($result) && $result !== false) {
                $this->list_data[0] = array(
                    'resultado' => $result
                );
            } else {
                $this->list_data = array();
            }
            $this->logMessage("[memCacheHandler] Lectura exitosa.");
        } catch (Exception $e) {

            $this->status = 1;
            $this->mensajeError = "[memCacheHandler] Ocurrio un error: " . $e->getMessage();
            $this->list_data = array();
            $this->logMessage("[memCacheHandler] ERROR!");
            $this->logMessage($e->getMessage());
        }
    }

}
