Merge "site: Make getPageUrl consistently return null"
[lhc/web/wiklou.git] / includes / api / ApiMessageTrait.php
index 18b6bc4..528a8b5 100644 (file)
@@ -22,6 +22,8 @@
  * Trait to implement the IApiMessage interface for Message subclasses
  * @since 1.27
  * @ingroup API
+ * @phan-file-suppress PhanTraitParentReference
+ * @phan-file-suppress PhanUndeclaredMethod
  */
 trait ApiMessageTrait {
 
@@ -37,6 +39,8 @@ trait ApiMessageTrait {
                'badipaddress' => 'invalidip',
                'blankpage' => 'emptypage',
                'blockedtext' => 'blocked',
+               'blockedtext-composite' => 'blocked',
+               'blockedtext-partial' => 'blocked',
                'cannotdelete' => 'cantdelete',
                'cannotundelete' => 'cantundelete',
                'cantmove-titleprotected' => 'protectedtitle',
@@ -105,12 +109,15 @@ trait ApiMessageTrait {
                        } else {
                                $this->apiCode = $key;
                        }
+
+                       // Ensure the code is actually valid
+                       $this->apiCode = preg_replace( '/[^a-zA-Z0-9_-]/', '_', $this->apiCode );
                }
                return $this->apiCode;
        }
 
        public function setApiCode( $code, array $data = null ) {
-               if ( $code !== null && !( is_string( $code ) && $code !== '' ) ) {
+               if ( $code !== null && !ApiErrorFormatter::isValidApiCode( $code ) ) {
                        throw new InvalidArgumentException( "Invalid code \"$code\"" );
                }