[aur-dev] [PATCH 4/4] rpc: allow multiple args on info query
Lukas Fleischer
archlinux at cryptocrack.de
Tue Apr 12 10:23:40 EDT 2011
On Tue, Apr 12, 2011 at 01:05:28PM +0200, Tuxce wrote:
> >From d7d06859ddc9425930e586a0685f09f9798dfddc Mon Sep 17 00:00:00 2001
> From: tuxce <tuxce.net at gmail.com>
> Date: Tue, 12 Apr 2011 12:42:30 +0200
> Subject: [PATCH] rpc: unify methods return.
>
> Include maintainer in info and search method.
You should mention FS#17597 here. Just add something like "(fixes
FS#17597)" to the commit message.
> ---
> web/lib/aurjson.class.php | 20 ++++++++------------
> 1 files changed, 8 insertions(+), 12 deletions(-)
>
> diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php
> index 57096d8..3283a92 100644
> --- a/web/lib/aurjson.class.php
> +++ b/web/lib/aurjson.class.php
> @@ -82,6 +82,11 @@ class AurJSON {
> }
>
> private function process_query($type, $query) {
> + $fields = implode(',', self::$fields);
> + $query = "SELECT Users.Username as Maintainer, {$fields} " .
> + " FROM Packages LEFT JOIN Users " .
> + " on Packages.MaintainerUID = Users.ID " .
Please strip leading whitespaces and use upper case for "ON".
> + " WHERE ${query}";
We should probably think about renaming "$query" to something more
appropriate as we don't pass an entire MySQL query here anymore.
> $result = db_query($query, $this->dbh);
>
> if ( $result && (mysql_num_rows($result) > 0) ) {
> @@ -140,13 +145,10 @@ class AurJSON {
> return $this->json_error('Query arg too small');
> }
>
> - $fields = implode(',', self::$fields);
> $keyword_string = mysql_real_escape_string($keyword_string, $this->dbh);
> $keyword_string = addcslashes($keyword_string, '%_');
>
> - $query = "SELECT {$fields} " .
> - " FROM Packages WHERE " .
> - " ( Name LIKE '%{$keyword_string}%' OR " .
> + $query = " ( Name LIKE '%{$keyword_string}%' OR " .
> " Description LIKE '%{$keyword_string}%' )";
>
> return $this->process_query('search', $query);
> @@ -158,7 +160,6 @@ class AurJSON {
> * @return mixed Returns an array of value data containing the package data
> **/
> private function info($pqdata) {
> - $fields = implode(',', self::$fields);
> $args = $this->parse_info_args($pqdata);
> $ids = $args['ids'];
> $names = $args['names'];
> @@ -167,8 +168,7 @@ class AurJSON {
> return $this->json_error('Invalid query arguments');
> }
>
> - $query = "SELECT {$fields} " .
> - " FROM Packages WHERE ";
> + $query = "";
> if ($ids) {
> $ids_value = implode(',', $args['ids']);
> $query .= "ID IN ({$ids_value})";
> @@ -191,13 +191,9 @@ class AurJSON {
> * @return mixed Returns an array of value data containing the package data
> **/
> private function msearch($maintainer) {
> - $fields = implode(',', self::$fields);
> $maintainer = mysql_real_escape_string($maintainer, $this->dbh);
>
> - $query = "SELECT Users.Username as Maintainer, {$fields} " .
> - " FROM Packages, Users WHERE " .
> - " Packages.MaintainerUID = Users.ID AND " .
> - " Users.Username = '{$maintainer}'";
> + $query = " Users.Username = '{$maintainer}'";
>
> return $this->process_query('msearch', $query);
> }
> --
> 1.7.4.4
>
Apart from that, this one looks okay to me :)
More information about the aur-dev
mailing list