api: Inject services into ApiSetPageLanguage
Bug: T259960 Change-Id: I528bfbaf84a46248ba69533780374aebb5cdd542
This commit is contained in:
parent
56ff3059ea
commit
1fa849bd11
2 changed files with 36 additions and 6 deletions
|
|
@ -294,7 +294,13 @@ class ApiMain extends ApiBase {
|
|||
'MergeHistoryFactory',
|
||||
],
|
||||
],
|
||||
'setpagelanguage' => ApiSetPageLanguage::class,
|
||||
'setpagelanguage' => [
|
||||
'class' => ApiSetPageLanguage::class,
|
||||
'services' => [
|
||||
'DBLoadBalancer',
|
||||
'LanguageNameUtils',
|
||||
]
|
||||
],
|
||||
'changecontentmodel' => [
|
||||
'class' => ApiChangeContentModel::class,
|
||||
'services' => [
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@
|
|||
* @file
|
||||
*/
|
||||
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use MediaWiki\Languages\LanguageNameUtils;
|
||||
use Wikimedia\Rdbms\ILoadBalancer;
|
||||
|
||||
/**
|
||||
* API module that facilitates changing the language of a page.
|
||||
|
|
@ -30,6 +31,30 @@ use MediaWiki\MediaWikiServices;
|
|||
* @ingroup API
|
||||
*/
|
||||
class ApiSetPageLanguage extends ApiBase {
|
||||
|
||||
/** @var ILoadBalancer */
|
||||
private $loadBalancer;
|
||||
|
||||
/** @var LanguageNameUtils */
|
||||
private $languageNameUtils;
|
||||
|
||||
/**
|
||||
* @param ApiMain $mainModule
|
||||
* @param string $moduleName
|
||||
* @param ILoadBalancer $loadBalancer
|
||||
* @param LanguageNameUtils $languageNameUtils
|
||||
*/
|
||||
public function __construct(
|
||||
ApiMain $mainModule,
|
||||
$moduleName,
|
||||
ILoadBalancer $loadBalancer,
|
||||
LanguageNameUtils $languageNameUtils
|
||||
) {
|
||||
parent::__construct( $mainModule, $moduleName );
|
||||
$this->loadBalancer = $loadBalancer;
|
||||
$this->languageNameUtils = $languageNameUtils;
|
||||
}
|
||||
|
||||
// Check if change language feature is enabled
|
||||
protected function getExtendedDescription() {
|
||||
if ( !$this->getConfig()->get( 'PageLanguageUseDB' ) ) {
|
||||
|
|
@ -84,7 +109,8 @@ class ApiSetPageLanguage extends ApiBase {
|
|||
$titleObj,
|
||||
$params['lang'],
|
||||
$params['reason'] ?? '',
|
||||
$params['tags'] ?: []
|
||||
$params['tags'] ?: [],
|
||||
$this->loadBalancer->getConnectionRef( ILoadBalancer::DB_PRIMARY )
|
||||
);
|
||||
|
||||
if ( !$status->isOK() ) {
|
||||
|
|
@ -117,9 +143,7 @@ class ApiSetPageLanguage extends ApiBase {
|
|||
'lang' => [
|
||||
ApiBase::PARAM_TYPE => array_merge(
|
||||
[ 'default' ],
|
||||
array_keys( MediaWikiServices::getInstance()
|
||||
->getLanguageNameUtils()
|
||||
->getLanguageNames( null, 'mwfile' ) )
|
||||
array_keys( $this->languageNameUtils->getLanguageNames( null, 'mwfile' ) )
|
||||
),
|
||||
ApiBase::PARAM_REQUIRED => true,
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in a new issue