summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Translate/api/ApiQueryLanguageStats.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/Translate/api/ApiQueryLanguageStats.php')
-rw-r--r--www/wiki/extensions/Translate/api/ApiQueryLanguageStats.php27
1 files changed, 19 insertions, 8 deletions
diff --git a/www/wiki/extensions/Translate/api/ApiQueryLanguageStats.php b/www/wiki/extensions/Translate/api/ApiQueryLanguageStats.php
index fe403763..a25cda21 100644
--- a/www/wiki/extensions/Translate/api/ApiQueryLanguageStats.php
+++ b/www/wiki/extensions/Translate/api/ApiQueryLanguageStats.php
@@ -4,7 +4,7 @@
*
* @file
* @author Niklas Laxström
- * @license GPL-2.0+
+ * @license GPL-2.0-or-later
*/
/**
@@ -18,10 +18,21 @@ class ApiQueryLanguageStats extends ApiStatsQuery {
parent::__construct( $query, $moduleName, 'ls' );
}
- protected function getData() {
- $params = $this->extractRequestParams();
+ /// Overwritten from ApiStatsQuery
+ protected function validateTargetParamater( array $params ) {
+ $all = TranslateUtils::getLanguageNames( null );
+ $requested = $params[ 'language' ];
- return MessageGroupStats::forLanguage( $params['language'] );
+ if ( !isset( $all[ $requested ] ) ) {
+ $this->dieWithError( [ 'apierror-translate-invalidlanguage' ] );
+ }
+
+ return $requested;
+ }
+
+ /// Overwritten from ApiStatsQuery
+ protected function loadStatistics( $target, $flags = 0 ) {
+ return MessageGroupStats::forLanguage( $target, $flags );
}
protected function makeItem( $item, $stats ) {
@@ -33,18 +44,18 @@ class ApiQueryLanguageStats extends ApiStatsQuery {
public function getAllowedParams() {
$params = parent::getAllowedParams();
- $params['language'] = array(
+ $params['language'] = [
ApiBase::PARAM_TYPE => 'string',
ApiBase::PARAM_REQUIRED => true,
- );
+ ];
return $params;
}
protected function getExamplesMessages() {
- return array(
+ return [
'action=query&meta=languagestats&lslanguage=fi'
=> 'apihelp-query+languagestats-example-1',
- );
+ ];
}
}