Source for file jJsonRpcRequest.class.php

Documentation is available at jJsonRpcRequest.class.php

  1. <?php
  2. /**
  3. * @package     jelix
  4. * @subpackage  core_request
  5. * @author      Laurent Jouanneau
  6. * @contributor
  7. * @copyright   2005-2007 Laurent Jouanneau
  8. * @link        http://www.jelix.org
  9. * @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  10. */
  11.  
  12. /**
  13.  * the jJsonRpcRequest require jJsonRpc class
  14.  */
  15. require(JELIX_LIB_UTILS_PATH.'jJsonRpc.class.php');
  16.  
  17. /**
  18. * handle a JSON-rpc call. The response has to be a json rpc response.
  19. * @package  jelix
  20. * @subpackage core_request
  21. */
  22. class jJsonRpcRequest extends jRequest {
  23.  
  24.     public $type = 'jsonrpc';
  25.  
  26.     public $defaultResponseType = 'jsonrpc';
  27.  
  28.     public $jsonRequestId=null;
  29.  
  30.     /**
  31.      * analyse the http request and set the params property
  32.      */
  33.     protected function _initParams(){
  34.         global $HTTP_RAW_POST_DATA;
  35.         if(isset($HTTP_RAW_POST_DATA)){
  36.             $request = $HTTP_RAW_POST_DATA;
  37.         }else{
  38.             $request = file('php://input');
  39.             $request = implode("\n",$request);
  40.         }
  41.  
  42.         // Décodage de la requete
  43.         $requestobj = jJsonRpc::decodeRequest($request);
  44.         if($requestobj['method']){
  45.             list($module, $action) = explode('~',$requestobj['method']);
  46.         }else{
  47.             $module='';
  48.             $action='';
  49.         }
  50.         if(isset( $requestobj['id']))
  51.             $this->jsonRequestId = $requestobj['id'];
  52.  
  53.         if(is_array($requestobj['params']))
  54.             $this->params = $requestobj['params'];
  55.  
  56.         $this->params['params'] = $requestobj['params'];
  57.  
  58.         // Définition de l'action a executer et des paramètres
  59.         $this->params['module'] = $module;
  60.         $this->params['action'] = $action;
  61.     }
  62.  
  63.     public function allowedResponses(){ return array('jResponseJsonrpc');}
  64.  
  65. }
  66. ?>

Documentation generated on Wed, 07 Sep 2011 13:47:33 +0200 by phpDocumentor 1.4.3