[aur-dev] [PATCH 2/6] aurjson: Add "maintainer" search type

Lukas Fleischer lfleischer at archlinux.org
Sun Oct 4 09:41:45 UTC 2015


Deprecate the msearch command and add a new search type to the search
command.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
 web/lib/aurjson.class.php | 43 ++++++++++++++++++++++---------------------
 1 file changed, 22 insertions(+), 21 deletions(-)

diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php
index 8ca028a..f4d5b3e 100644
--- a/web/lib/aurjson.class.php
+++ b/web/lib/aurjson.class.php
@@ -17,7 +17,7 @@ class AurJSON {
 		'suggest-pkgbase', 'get-comment-form'
 	);
 	private static $exposed_fields = array(
-		'name', 'name-desc'
+		'name', 'name-desc', 'maintainer'
 	);
 	private static $fields_v1 = array(
 		'Packages.ID', 'Packages.Name',
@@ -358,23 +358,32 @@ class AurJSON {
 	 */
 	private function search($http_data) {
 		$keyword_string = $http_data['arg'];
+
 		if (isset($http_data['search_by'])) {
 			$search_by = $http_data['search_by'];
 		} else {
 			$search_by = 'name-desc';
 		}
 
-		if (strlen($keyword_string) < 2) {
-			return $this->json_error('Query arg too small');
-		}
-
-		$keyword_string = $this->dbh->quote("%" . addcslashes($keyword_string, '%_') . "%");
+		if ($search_by === 'name' || $search_by === 'name-desc') {
+			if (strlen($keyword_string) < 2) {
+				return $this->json_error('Query arg too small');
+			}
+			$keyword_string = $this->dbh->quote("%" . addcslashes($keyword_string, '%_') . "%");
 
-		if ($search_by === 'name') {
-			$where_condition = "(Packages.Name LIKE $keyword_string)";
-		} else if ($search_by === 'name-desc') {
-			$where_condition = "(Packages.Name LIKE $keyword_string OR ";
-			$where_condition .= "Description LIKE $keyword_string)";
+			if ($search_by === 'name') {
+				$where_condition = "(Packages.Name LIKE $keyword_string)";
+			} else if ($search_by === 'name-desc') {
+				$where_condition = "(Packages.Name LIKE $keyword_string OR ";
+				$where_condition .= "Description LIKE $keyword_string)";
+			}
+		} else if ($search_by === 'maintainer') {
+			if (empty($keyword_string)) {
+				$where_condition = "Users.ID is NULL";
+			} else {
+				$keyword_string = $this->dbh->quote($keyword_string);
+				$where_condition = "Users.Username = $keyword_string ";
+			}
 		}
 
 		return $this->process_query('search', $where_condition);
@@ -443,16 +452,8 @@ class AurJSON {
 	 * @return mixed Returns an array of value data containing the package data
 	 */
 	private function msearch($http_data) {
-		$maintainer = $http_data['arg'];
-
-		if (empty($maintainer)) {
-			$where_condition = "Users.ID is NULL";
-		} else {
-			$maintainer = $this->dbh->quote($maintainer);
-			$where_condition = "Users.Username = $maintainer ";
-		}
-
-		return $this->process_query('msearch', $where_condition);
+		$http_data['search_by'] = 'maintainer';
+		return $this->search($http_data);
 	}
 
 	/*
-- 
2.6.0


More information about the aur-dev mailing list