X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fapi%2FApiWatch.php;h=37d319f15178adab7161849a51cb965bc4df1ae5;hp=3a7a082148dce34d2dd31b31db7f78c3b2ed8865;hb=49748181dd56ec97e7ba7c13e684a16abceb3cc0;hpb=dcd211106c88fcb3b9565045c6b2264dba6be13c diff --git a/includes/api/ApiWatch.php b/includes/api/ApiWatch.php index 3a7a082148..37d319f151 100644 --- a/includes/api/ApiWatch.php +++ b/includes/api/ApiWatch.php @@ -35,12 +35,10 @@ class ApiWatch extends ApiBase { public function execute() { $user = $this->getUser(); if ( !$user->isLoggedIn() ) { - $this->dieUsage( 'You must be logged-in to have a watchlist', 'notloggedin' ); + $this->dieWithError( 'watchlistanontext', 'notloggedin' ); } - if ( !$user->isAllowed( 'editmywatchlist' ) ) { - $this->dieUsage( 'You don\'t have permission to edit your watchlist', 'permissiondenied' ); - } + $this->checkUserRightsAny( 'editmywatchlist' ); $params = $this->extractRequestParams(); @@ -62,7 +60,7 @@ class ApiWatch extends ApiBase { foreach ( $pageSet->getMissingTitles() as $title ) { $r = $this->watchTitle( $title, $user, $params ); - $r['missing'] = 1; + $r['missing'] = true; $res[] = $r; } @@ -78,16 +76,19 @@ class ApiWatch extends ApiBase { } ) ); if ( $extraParams ) { - $p = $this->getModulePrefix(); - $this->dieUsage( - "The parameter {$p}title can not be used with " . implode( ', ', $extraParams ), + $this->dieWithError( + [ + 'apierror-invalidparammix-cannotusewith', + $this->encodeParamName( 'title' ), + $pageSet->encodeParamName( $extraParams[0] ) + ], 'invalidparammix' ); } $title = Title::newFromText( $params['title'] ); if ( !$title || !$title->isWatchable() ) { - $this->dieUsageMsg( [ 'invalidtitle', $params['title'] ] ); + $this->dieWithError( [ 'invalidtitle', $params['title'] ] ); } $res = $this->watchTitle( $title, $user, $params, true ); } @@ -109,26 +110,20 @@ class ApiWatch extends ApiBase { if ( $params['unwatch'] ) { $status = UnwatchAction::doUnwatch( $title, $user ); $res['unwatched'] = $status->isOK(); - if ( $status->isOK() ) { - $msgKey = $title->isTalkPage() ? 'removedwatchtext-talk' : 'removedwatchtext'; - $res['message'] = $this->msg( $msgKey, $title->getPrefixedText() ) - ->title( $title )->parseAsBlock(); - } } else { $status = WatchAction::doWatch( $title, $user ); $res['watched'] = $status->isOK(); - if ( $status->isOK() ) { - $msgKey = $title->isTalkPage() ? 'addedwatchtext-talk' : 'addedwatchtext'; - $res['message'] = $this->msg( $msgKey, $title->getPrefixedText() ) - ->title( $title )->parseAsBlock(); - } } if ( !$status->isOK() ) { if ( $compatibilityMode ) { $this->dieStatus( $status ); } - $res['error'] = $this->getErrorFromStatus( $status ); + $res['errors'] = $this->getErrorFormatter()->arrayFromStatus( $status, 'error' ); + $res['warnings'] = $this->getErrorFormatter()->arrayFromStatus( $status, 'warning' ); + if ( !$res['warnings'] ) { + unset( $res['warnings'] ); + } } return $res;