<?php

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

    /**
     * Executes list action
     *
     * @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");
            if ($value == 'null') {
                unset($request[$key]);
            }
        }
        $this->logMessage("--------------------------------------------------*  Ip: " . $_SERVER['REMOTE_ADDR']);
        foreach ($request->getGetParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("---END Logging request");

        /*
         * Manejar errores 
         */
        try {

            $array = array();

            $url = sfConfig::get('app_urlFM') . "/api/expediente/tiposactualizaciones";
            $get = array(
                "api_key" => sfConfig::get('app_apiKeyFM')
            );
            $options = array();

            //Se hace el llamado al método de llamadoGetURL que se encuentra en CN_TABLE 
            $respuesta = CN_TABLE::llamadoGetURL($url, $get, $options);

            //echo "$url";
            //echo print_r($respuesta);
            //die();

            /*
             * Transforma el JSON en array para capturar los datos
             */
            $respuesta = json_decode($respuesta, true);
            $arraylist = $respuesta;
            //Verifica el status, si es diferente de 0, ocurrio un error al subir la interfaz y debe reportarlo
            if (isset($arraylist['response']['status']) &&  $arraylist['response']['status'] != 0) {
                $mensaje = $arraylist['response']['data'];
                $this->status = 3;
                $a = $mensaje[0]['mensaje'];
                $b = htmlspecialchars($a, ENT_QUOTES);
                $this->mensajeError = $b;

                $this->list_data = $array;
            } else {
                $this->logMessage("Ejecuta correctamente el llamado");
                //$this->logMessage("Estatus de ejecución" . $arraylist['response']['status']);
                //$this->logMessage(print_r($arraylist));

                $this->list_data = $arraylist;
            }
            $this->logMessage("[tipos_actualizaciones] Consulta Terminada.");
        } catch (ParseException $e) {

            $this->status = 1;
            $this->mensajeError = "ERROR!!! Unable to parse the JSON string: %s";
            $this->list_data = array();
            $this->logMessage("ERROR!!! Unable to parse the JSON string: %s");
            $this->logMessage($e->getMessage());
        } catch (Exception $e) {

            $this->status = 1;
            $this->mensajeError = "ERROR!!!";
            $this->list_data = array();
            $this->logMessage("ERROR!!!");
            $this->logMessage($e->getMessage());
        }
    }

}
