/** * 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); }
/** * 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; }