From c60c3da6a10b56c05cf7182a5ecec6b7cdd213b6 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Tue, 2 Jul 2013 17:46:00 +0200 Subject: [PATCH] [*] WS : improved web service performances --- .../webservice/WebserviceOutputBuilder.php | 2 +- classes/webservice/WebserviceRequest.php | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/classes/webservice/WebserviceOutputBuilder.php b/classes/webservice/WebserviceOutputBuilder.php index 00bae700f..5fb9cb7c9 100755 --- a/classes/webservice/WebserviceOutputBuilder.php +++ b/classes/webservice/WebserviceOutputBuilder.php @@ -376,7 +376,7 @@ class WebserviceOutputBuilderCore { if ($key !== 'empty') { - if ($this->fieldsToDisplay === 'minimum') + if ($this->fieldsToDisplay === 'minimum') $output .= $this->renderEntityMinimum($object, $depth); else $output .= $this->renderEntity($object, $depth); diff --git a/classes/webservice/WebserviceRequest.php b/classes/webservice/WebserviceRequest.php index 082dff46c..c90e3a43a 100644 --- a/classes/webservice/WebserviceRequest.php +++ b/classes/webservice/WebserviceRequest.php @@ -530,9 +530,10 @@ class WebserviceRequestCore } } } - return $this->returnOutput(); + $return = $this->returnOutput(); unset($webservice_call); - unset ($display_errors); + unset($display_errors); + return $return; } protected function webserviceChecks() @@ -1158,6 +1159,7 @@ class WebserviceRequestCore $sorts = array($this->urlFragments['sort']); $sql_sort .= ' ORDER BY '; + foreach ($sorts as $sort) { $delimiterPosition = strrpos($sort, '_'); @@ -1219,8 +1221,6 @@ class WebserviceRequestCore return $filters; } - - public function getFilteredObjectList() { $objects = array(); @@ -1241,7 +1241,16 @@ class WebserviceRequestCore if ($sqlObjects) { foreach ($sqlObjects as $sqlObject) - $objects[] = new $this->resourceConfiguration['retrieveData']['className']((int)$sqlObject[$this->resourceConfiguration['fields']['id']['sqlId']]); + { + if ($this->fieldsToDisplay == 'minimum') + { + $obj = new $this->resourceConfiguration['retrieveData']['className'](); + $obj->id = (int)$sqlObject[$this->resourceConfiguration['fields']['id']['sqlId']]; + $objects[] = $obj; + } + else + $objects[] = new $this->resourceConfiguration['retrieveData']['className']((int)$sqlObject[$this->resourceConfiguration['fields']['id']['sqlId']]); + } return $objects; } }