<?php

/**
 * url_expediente actions.
 *
 * @package    canon
 * @subpackage url_expediente
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class url_expedienteActions 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();
            $id_titulo = $request['id_titulo'];
            $id_expediente = $request['id_expediente'];

            $url_base = sfConfig::get('app_urlFM');
            $url = sfConfig::get('app_urlFM') . "/api/expediente/$id_titulo/$id_expediente";

            $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();
            
            
            /**
             * Cambiar caracteres especiales a hexa - 20151113
             */
            $respuesta = str_replace('á', '%E1', $respuesta);
            $respuesta = str_replace('é', '%E9', $respuesta);
            $respuesta = str_replace('í', '%ED', $respuesta);
            $respuesta = str_replace('ó', '%F3', $respuesta);
            $respuesta = str_replace('ú', '%FA', $respuesta);
            $respuesta = str_replace('ý', '%FD', $respuesta);
            $respuesta = str_replace('ñ', '%F1', $respuesta);
            $respuesta = str_replace('Á', '%C1', $respuesta);
            $respuesta = str_replace('É', '%C9', $respuesta);
            $respuesta = str_replace('Í', '%CD', $respuesta);
            $respuesta = str_replace('Ó', '%D3', $respuesta);
            $respuesta = str_replace('Ú', '%DA', $respuesta);
            $respuesta = str_replace('Ý', '%DD', $respuesta);
            $respuesta = str_replace('Ñ', '%D1', $respuesta);

            /*
             * Transforma el array en JSON para devolver los datos
             */
            $arraylist = array(
                '0' =>
                array(
                    'url_expediente' => $url_base . $respuesta
                )
            );

            $this->logMessage("Ejecuta correctamente el llamado");
            //$this->logMessage(print_r($arraylist));

            $this->list_data = $arraylist;

            $this->logMessage("[url_expediente] 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());
        }
    }

}
