re: r65152
authorMark A. Hershberger <mah@users.mediawiki.org>
Sat, 17 Apr 2010 16:49:20 +0000 (16:49 +0000)
committerMark A. Hershberger <mah@users.mediawiki.org>
Sat, 17 Apr 2010 16:49:20 +0000 (16:49 +0000)
* Make Job::insert() return true on success
* Change from Status object to array for API result on URL upload.

includes/JobQueue.php
includes/api/ApiUpload.php
includes/upload/UploadFromUrl.php
maintenance/tests/UploadFromUrlTest.php

index 4ab5eac..3ae4b8e 100644 (file)
@@ -76,7 +76,8 @@ abstract class Job {
                $namespace = $row->job_namespace;
                $dbkey = $row->job_title;
                $title = Title::makeTitleSafe( $namespace, $dbkey );
-               $job = Job::factory( $row->job_cmd, $title, Job::extractBlob( $row->job_params ), $row->job_id );
+               $job = Job::factory( $row->job_cmd, $title, Job::extractBlob( $row->job_params ),
+                       $row->job_id );
 
                $dbw->delete( 'job', $job->insertFields(), __METHOD__ );
                $dbw->commit();
@@ -260,6 +261,7 @@ abstract class Job {
 
        /**
         * Insert a single job into the queue.
+        * @return bool true on success
         */
        function insert() {
                $fields = $this->insertFields();
@@ -272,7 +274,7 @@ abstract class Job {
                                return;
                        }
                }
-               $dbw->insert( 'job', $fields, __METHOD__ );
+               return $dbw->insert( 'job', $fields, __METHOD__ );
        }
 
        protected function insertFields() {
index d98965f..054b79b 100644 (file)
@@ -92,10 +92,10 @@ class ApiUpload extends ApiBase {
                                }
 
                                $this->mUpload = new UploadFromUrl;
-                               $this->mUpload->initialize( $this->mParams['filename'], $this->mParams['url'],
+                               $result = $this->mUpload->initialize( $this->mParams['filename'], $this->mParams['url'],
                                                                                        $this->mParams['comment'] );
 
-                               $this->getResult()->addValue( null, $this->getModuleName(), Status::newGood() );
+                               $this->getResult()->addValue( null, $this->getModuleName(), array( 'queued' => $result ) );
                                return;
                        }
                } else {
index 8f851b0..0fb7f4b 100644 (file)
@@ -24,6 +24,7 @@ class UploadFromUrl extends UploadBase {
 
        /**
         * Checks if the upload from URL feature is enabled
+        * @return bool
         */
        public static function isEnabled() {
                global $wgAllowCopyUploads;
@@ -32,6 +33,7 @@ class UploadFromUrl extends UploadBase {
 
        /**
         * Entry point for API upload
+        * @return bool true on success
         */
        public function initialize( $name, $url, $comment, $watchlist ) {
                global $wgUser;
@@ -66,7 +68,7 @@ class UploadFromUrl extends UploadBase {
 
 
                $job = new UploadFromUrlJob( $title, $params );
-               $job->insert();
+               return $job->insert();
        }
 
        /**
index 77fd099..76bd94f 100644 (file)
@@ -143,9 +143,7 @@ class UploadFromUrlTest extends ApiSetup {
                        'token' => $token,
                ), $data );
 
-               $this->assertThat( $data[0]['upload'], $this->isInstanceOf( 'Status' ),
-                       "Got Status Object" );
-               $this->assertTrue( $data[0]['upload']->isOk(), 'Job added');
+               $this->assertTrue( $data[0]['upload']['queued'], 'Job added');
 
                $job = Job::pop();
                $this->assertThat( $job, $this->isInstanceOf( 'UploadFromUrlJob' ),