diff options
author | Yuri Astrakhan <yuriastrakhan@gmail.com> | 2013-01-14 21:19:16 -0500 |
---|---|---|
committer | Yuri Astrakhan <yuriastrakhan@gmail.com> | 2013-01-14 21:19:16 -0500 |
commit | 983545c362921cd1a60b5f00d1d0088c51072cdc (patch) | |
tree | 09a95b03eafc8d5f636bc6995fe01fe4cb03f408 /includes/api/ApiQueryBase.php | |
parent | 0198fc6c68c201bf28c6cca8bc7e5c5a61740e41 (diff) | |
download | mediawikicore-983545c362921cd1a60b5f00d1d0088c51072cdc.tar.gz mediawikicore-983545c362921cd1a60b5f00d1d0088c51072cdc.zip |
API Cleanup: renamed '_badcontinue'->'badcontinue', one die()
* If a query module has 'continue' parameter, it will auto-report
that it has 'badcontinue' error.
* Added APIQueryBase::DieUsageContinueIf( $condition ) that shows
correct badcontinue error if $condition is true.
Change-Id: I9c48bda6de0cde3c117ad24460bddf6980279633
Diffstat (limited to 'includes/api/ApiQueryBase.php')
-rw-r--r-- | includes/api/ApiQueryBase.php | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/includes/api/ApiQueryBase.php b/includes/api/ApiQueryBase.php index 5f4d9f9ce7b4..e36109a2d3d7 100644 --- a/includes/api/ApiQueryBase.php +++ b/includes/api/ApiQueryBase.php @@ -375,6 +375,19 @@ abstract class ApiQueryBase extends ApiBase { } /** + * Die with the $prefix.'badcontinue' error. This call is common enough to make it into the base method. + * @param $condition boolean will only die if this value is true + * @since 1.21 + */ + protected function dieContinueUsageIf( $condition ) { + if ( $condition ) { + $this->dieUsage( + 'Invalid continue param. You should pass the original value returned by the previous query', + 'badcontinue' ); + } + } + + /** * Get the Query database connection (read-only) * @return DatabaseBase */ @@ -549,10 +562,21 @@ abstract class ApiQueryBase extends ApiBase { * @return array */ public function getPossibleErrors() { - return array_merge( parent::getPossibleErrors(), array( + $errors = parent::getPossibleErrors(); + $errors = array_merge( $errors, array( array( 'invalidtitle', 'title' ), array( 'invalidtitle', 'key' ), ) ); + $params = $this->getFinalParams(); + if ( array_key_exists( 'continue', $params ) ) { + $errors = array_merge( $errors, array( + array( + 'code' => 'badcontinue', + 'info' => 'Invalid continue param. You should pass the original value returned by the previous query' + ), + ) ); + } + return $errors; } /** |