[aur-dev] [PATCH] Add newly submitted packages functionality with json interface

Laszlo Papp djszapi2 at gmail.com
Mon Oct 5 18:02:19 EDT 2009


From: Laszlo Papp <djszapi2 at gmail.com>

	Add a json interface for the newly submitted packages output,
	after a query operation, and it will be easier to handle it from
	a frontend for example.

Signed-off-by: Laszlo Papp <djszapi at archlinux.us>
---
 web/html/rpc.php          |    1 +
 web/lib/aurjson.class.php |   32 +++++++++++++++++++++++++++++++-
 2 files changed, 32 insertions(+), 1 deletions(-)

diff --git a/web/html/rpc.php b/web/html/rpc.php
index 240cad1..52e5603 100644
--- a/web/html/rpc.php
+++ b/web/html/rpc.php
@@ -19,6 +19,7 @@ if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
         echo '<li>search</li>';
         echo '<li>info</li>';
         echo '<li>msearch</li>';
+        echo '<li>newpackages</li>';
         echo '</ul><br />';
         echo 'Each method requires the following HTTP GET syntax:<br />';
         echo '&nbsp;&nbsp; type=<i>methodname</i>&arg=<i>data</i> <br /><br />';
diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php
index 251203a..884e327 100644
--- a/web/lib/aurjson.class.php
+++ b/web/lib/aurjson.class.php
@@ -18,7 +18,7 @@ include_once("aur.inc");
  **/
 class AurJSON {
     private $dbh = false;
-    private $exposed_methods = array('search','info','msearch');
+    private $exposed_methods = array('search','info','msearch','newpackages');
     private $fields = array('Packages.ID','Name','Version','CategoryID',
 	'Description', 'LocationID', 'URL','URLPath','License','NumVotes',
 	'OutOfDate');
@@ -116,6 +116,36 @@ class AurJSON {
     }
 
     /**
+      * Returns the latest packages from the database.
+      * @param $quantity_integer how much packages should return.
+      * @return mixed Returns an array with the latests quantity_integer packages.
+      **/
+     private function newpackages($quantity_integer) {
+ 	    echo $keywrd_string;
+         if ($quantity_integer <= 0) {
+             return $this->json_error('Quantity should be positive');
+         }
+
+         $query = "SELECT " . implode(',', $this->fields) .
+             " FROM Packages ORDER BY SubmittedTS DESC LIMIT 0," .$quantity_integer;
+
+         $result = db_query($query, $this->dbh);
+
+         if ( $result && (mysql_num_rows($result) > 0) ) {
+             $search_data = array();
+             while ( $row = mysql_fetch_assoc($result) ) {
+                 array_push($search_data, $row);
+             }
+
+             mysql_free_result($result);
+             return $this->json_results('newpackages', $search_data);
+         }
+         else {
+             return $this->json_error('No results found');
+         }
+     }
+
+    /**
      * Returns the info on a specific package.
      * @param $pqdata The ID or name of the package. Package Query Data.
      * @return mixed Returns an array of value data containing the package data
-- 
1.6.4.4



More information about the aur-dev mailing list