diff --git a/src/Resource/AbstractResource.php b/src/Resource/AbstractResource.php index 5704c5c..d09f1db 100644 --- a/src/Resource/AbstractResource.php +++ b/src/Resource/AbstractResource.php @@ -386,7 +386,7 @@ private function allWithoutPagination() * @return mixed Returns array of ZammadAPIClient\Resource\... objects * or this object on failure. */ - public function search( $search_term, $page = null, $objects_per_page = null ) + public function search( $search_term, $page = null, $objects_per_page = null, $sort_by = null, $order_by = null ) { if ( !empty( $this->getValues() ) ) { throw new AlreadyFetchedObjectException('Object already contains values, search() not possible, use a new object'); @@ -406,7 +406,7 @@ public function search( $search_term, $page = null, $objects_per_page = null ) } if ( !isset($page) || !isset($objects_per_page) ) { - return $this->searchWithoutPagination($search_term); + return $this->searchWithoutPagination($search_term, $sort_by, $order_by); } $url_parameters = [ @@ -419,6 +419,13 @@ public function search( $search_term, $page = null, $objects_per_page = null ) $url_parameters['per_page'] = $objects_per_page; } + if ( isset($sort_by) ) { + $url_parameters['sort_by'] = $sort_by; + } + if ( isset($order_by) ) { + $url_parameters['order_by'] = $order_by; + } + $url = $this->getURL('search'); $response = $this->getClient()->get( $url, @@ -452,7 +459,7 @@ public function search( $search_term, $page = null, $objects_per_page = null ) * @return mixed Returns array of ZammadAPIClient\Resource\... objects * or this object on failure. */ - private function searchWithoutPagination($search_term) + private function searchWithoutPagination($search_term, $sort_by = null, $order_by = null) { $page = 1; $objects_per_page = 100; @@ -460,7 +467,7 @@ private function searchWithoutPagination($search_term) $objects_of_page = []; do { - $objects_of_page = $this->search( $search_term, $page, $objects_per_page ); + $objects_of_page = $this->search( $search_term, $page, $objects_per_page, $sort_by, $order_by ); if ( !is_array($objects_of_page) ) { return $this; }