예제 #1
0
 /**
  * Process the odata query options and update RequestDescription
  * accordingly. 
  * 
  * @param RequestDescription &$requestDescription Description of the request 
  *                                                submitted by client.
  * @param DataService        &$dataService        Reference to the data service.
  * 
  * @return void
  * 
  * @throws ODataException
  */
 public static function process(RequestDescription &$requestDescription, DataService &$dataService)
 {
     $queryProcessor = new QueryProcessor($requestDescription, $dataService);
     if ($requestDescription->getTargetSource() == RequestTargetSource::NONE) {
         //A service directory, metadata or batch request
         $queryProcessor->_checkForEmptyQueryArguments();
     } else {
         $queryProcessor->_processQuery();
     }
     unset($queryProcessor);
 }
예제 #2
0
 /**
  * Process the resource path and query options of client's request uri.
  * 
  * @param DataService &$dataService Reference to the data service instance.
  * 
  * @return void
  * 
  * @throws ODataException
  */
 public static function process(DataService &$dataService)
 {
     $absoluteRequestUri = $dataService->getHost()->getAbsoluteRequestUri();
     $absoluteServiceUri = $dataService->getHost()->getAbsoluteServiceUri();
     if (!$absoluteServiceUri->isBaseOf($absoluteRequestUri)) {
         ODataException::createInternalServerError(Messages::uriProcessorRequestUriDoesNotHaveTheRightBaseUri($absoluteRequestUri->getUrlAsString(), $absoluteServiceUri->getUrlAsString()));
     }
     $uriProcessor = new UriProcessor($dataService);
     //Parse the resource path part of the request Uri.
     try {
         $uriProcessor->_requestDescription = ResourcePathProcessor::process($absoluteRequestUri, $dataService);
         $uriProcessor->_requestDescription->setUriProcessor($uriProcessor);
     } catch (ODataException $odataException) {
         throw $odataException;
     }
     //Parse the query string options of the request Uri.
     try {
         QueryProcessor::process($uriProcessor->_requestDescription, $dataService);
     } catch (ODataException $odataException) {
         throw $odataException;
     }
     return $uriProcessor;
 }