// Validate target
$targetUser = SpecialEmailUser::getTarget( $params['target'] );
if ( !( $targetUser instanceof User ) ) {
- $this->dieUsageMsg( [ $targetUser ] );
+ switch ( $targetUser ) {
+ case 'notarget':
+ $this->dieWithError( 'apierror-notarget' );
+ case 'noemail':
+ $this->dieWithError( [ 'noemail', $params['target'] ] );
+ case 'nowikiemail':
+ $this->dieWithError( 'nowikiemailtext', 'nowikiemail' );
+ default:
+ $this->dieWithError( [ 'apierror-unknownerror', $targetUser ] );
+ }
}
// Check permissions and errors
$this->getConfig()
);
if ( $error ) {
- $this->dieUsageMsg( [ $error ] );
+ $this->dieWithError( $error );
}
$data = [
'CCMe' => $params['ccme'],
];
$retval = SpecialEmailUser::submit( $data, $this->getContext() );
-
- if ( $retval instanceof Status ) {
- // SpecialEmailUser sometimes returns a status
- // sometimes it doesn't.
- if ( $retval->isGood() ) {
- $retval = true;
- } else {
- $retval = $retval->getErrorsArray();
- }
+ if ( !$retval instanceof Status ) {
+ // This is probably the reason
+ $retval = Status::newFatal( 'hookaborted' );
}
- if ( $retval === true ) {
- $result = [ 'result' => 'Success' ];
- } else {
- $result = [
- 'result' => 'Failure',
- 'message' => $retval
- ];
- }
+ $result = array_filter( [
+ 'result' => $retval->isGood() ? 'Success' : ( $retval->isOk() ? 'Warnings' : 'Failure' ),
+ 'warnings' => $this->getErrorFormatter()->arrayFromStatus( $retval, 'warning' ),
+ 'errors' => $this->getErrorFormatter()->arrayFromStatus( $retval, 'error' ),
+ ] );
$this->getResult()->addValue( null, $this->getModuleName(), $result );
}
}
public function getHelpUrls() {
- return 'https://www.mediawiki.org/wiki/API:Email';
+ return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Email';
}
}