mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
aurjson: Add "maintainer" search type
Deprecate the msearch command and add a new search type to the search command. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
parent
bc2ee0c63f
commit
261c7f74dd
1 changed files with 22 additions and 21 deletions
|
@ -17,7 +17,7 @@ class AurJSON {
|
||||||
'suggest-pkgbase', 'get-comment-form'
|
'suggest-pkgbase', 'get-comment-form'
|
||||||
);
|
);
|
||||||
private static $exposed_fields = array(
|
private static $exposed_fields = array(
|
||||||
'name', 'name-desc'
|
'name', 'name-desc', 'maintainer'
|
||||||
);
|
);
|
||||||
private static $fields_v1 = array(
|
private static $fields_v1 = array(
|
||||||
'Packages.ID', 'Packages.Name',
|
'Packages.ID', 'Packages.Name',
|
||||||
|
@ -358,23 +358,32 @@ class AurJSON {
|
||||||
*/
|
*/
|
||||||
private function search($http_data) {
|
private function search($http_data) {
|
||||||
$keyword_string = $http_data['arg'];
|
$keyword_string = $http_data['arg'];
|
||||||
|
|
||||||
if (isset($http_data['search_by'])) {
|
if (isset($http_data['search_by'])) {
|
||||||
$search_by = $http_data['search_by'];
|
$search_by = $http_data['search_by'];
|
||||||
} else {
|
} else {
|
||||||
$search_by = 'name-desc';
|
$search_by = 'name-desc';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($keyword_string) < 2) {
|
if ($search_by === 'name' || $search_by === 'name-desc') {
|
||||||
return $this->json_error('Query arg too small');
|
if (strlen($keyword_string) < 2) {
|
||||||
}
|
return $this->json_error('Query arg too small');
|
||||||
|
}
|
||||||
|
$keyword_string = $this->dbh->quote("%" . addcslashes($keyword_string, '%_') . "%");
|
||||||
|
|
||||||
$keyword_string = $this->dbh->quote("%" . addcslashes($keyword_string, '%_') . "%");
|
if ($search_by === 'name') {
|
||||||
|
$where_condition = "(Packages.Name LIKE $keyword_string)";
|
||||||
if ($search_by === 'name') {
|
} else if ($search_by === 'name-desc') {
|
||||||
$where_condition = "(Packages.Name LIKE $keyword_string)";
|
$where_condition = "(Packages.Name LIKE $keyword_string OR ";
|
||||||
} else if ($search_by === 'name-desc') {
|
$where_condition .= "Description LIKE $keyword_string)";
|
||||||
$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);
|
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
|
* @return mixed Returns an array of value data containing the package data
|
||||||
*/
|
*/
|
||||||
private function msearch($http_data) {
|
private function msearch($http_data) {
|
||||||
$maintainer = $http_data['arg'];
|
$http_data['search_by'] = 'maintainer';
|
||||||
|
return $this->search($http_data);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Reference in a new issue