21 private $dataProvider;
23 public function __construct( ApiMain $mainModule, $moduleName ) {
24 parent::__construct( $mainModule, $moduleName );
25 $this->dataProvider = Services::getInstance()->getTranslationStatsDataProvider();
28 public function execute() {
29 $params = $this->extractRequestParams();
31 $graphOpts->bindArray( $params );
33 $language = $this->getLanguage();
35 [ $labels, $data ] = $this->dataProvider->getGraphData( $graphOpts, $language );
41 $this->getResult()->addValue(
null, $this->getModuleName(), $output );
44 protected function getAllowedParams() {
47 ParamValidator::PARAM_TYPE => $this->dataProvider->getGraphTypes(),
48 ParamValidator::PARAM_REQUIRED =>
true,
51 ParamValidator::PARAM_TYPE =>
'integer',
52 ParamValidator::PARAM_REQUIRED =>
true,
53 ParamValidator::PARAM_DEFAULT => 30,
54 IntegerDef::PARAM_MIN => 1,
55 IntegerDef::PARAM_MAX => 10000,
56 ApiBase::PARAM_RANGE_ENFORCE => true
59 ParamValidator::PARAM_TYPE =>
'string',
60 ParamValidator::PARAM_ISMULTI => true
63 ParamValidator::PARAM_TYPE =>
'string',
64 ParamValidator::PARAM_ISMULTI => true
67 ParamValidator::PARAM_TYPE => TranslationStatsGraphOptions::VALID_SCALES,
68 ParamValidator::PARAM_DEFAULT =>
'days'
71 ParamValidator::PARAM_TYPE =>
'timestamp'
76 protected function getExamplesMessages() {
78 'action=translationstats&count=edits&days=30'
79 =>
'apihelp-translationstats-example-1',
80 'action=translationstats&count=edits&days=30&language=en|fr'
81 =>
'apihelp-translationstats-example-2'