JoHammer has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/371505 )

Change subject: Change EchoEvent->create to return status or throw exceptions
......................................................................

Change EchoEvent->create to return status or throw exceptions

Bug: T169834
Change-Id: I405bb5c834a25a66df52697595254c50714a728b
---
M includes/model/Event.php
1 file changed, 7 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Echo 
refs/changes/05/371505/1

diff --git a/includes/model/Event.php b/includes/model/Event.php
index ecc0941..ab79bd1 100644
--- a/includes/model/Event.php
+++ b/includes/model/Event.php
@@ -103,10 +103,11 @@
                global $wgEchoNotifications;
 
                // Do not create event and notifications if write access is 
locked
-               if ( wfReadOnly()
+               if ( wfReadOnly() 
                        || MWEchoDbFactory::newFromDefault()->getEchoDb( 
DB_MASTER )->isReadOnly()
                ) {
-                       return false;
+                       $submitStatus = Status::newFatal( 'write access is 
locked, no event is created' );
+                       return $submitStatus;
                }
 
                $obj = new EchoEvent;
@@ -117,7 +118,7 @@
                }
 
                if ( !isset( $wgEchoNotifications[$info['type']] ) ) {
-                       return false;
+                       throw new MWException( "echo event is not an enabled 
event" );
                }
 
                $obj->id = false;
@@ -140,7 +141,7 @@
                if ( strlen( $obj->serializeExtra() ) > 50000 ) {
                        wfDebugLog( __CLASS__, __FUNCTION__ . ': event extra 
data is too huge for ' . $info['type'] );
 
-                       return false;
+                       throw new MWException( "event extra data is too huge" );
                }
 
                if ( $obj->title ) {
@@ -158,7 +159,8 @@
                }
 
                if ( !Hooks::run( 'BeforeEchoEventInsert', [ $obj ] ) ) {
-                       return false;
+                       $submitStatus = Status::newFatal( 'a handler aborted 
the hook event BeforeEchoEventInsert' );
+                       return $submitStatus;
                }
 
                // @Todo - Database insert logic should not be inside the model

-- 
To view, visit https://gerrit.wikimedia.org/r/371505
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I405bb5c834a25a66df52697595254c50714a728b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: JoHammer <johanna.m.m...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to