Allow apps to store longer messages in the comments API

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2019-06-26 10:11:46 +02:00 committed by Backportbot
parent 449f23e8d5
commit 193e8a750e
2 changed files with 7 additions and 5 deletions

View File

@ -188,17 +188,18 @@ class Comment implements IComment {
* sets the message of the comment and returns itself
*
* @param string $message
* @param int $maxLength
* @return IComment
* @throws MessageTooLongException
* @since 9.0.0
*/
public function setMessage($message) {
public function setMessage($message, $maxLength = self::MAX_MESSAGE_LENGTH) {
if(!is_string($message)) {
throw new \InvalidArgumentException('String expected.');
}
$message = trim($message);
if(mb_strlen($message, 'UTF-8') > IComment::MAX_MESSAGE_LENGTH) {
throw new MessageTooLongException('Comment message must not exceed ' . IComment::MAX_MESSAGE_LENGTH . ' characters');
if ($maxLength && mb_strlen($message, 'UTF-8') > $maxLength) {
throw new MessageTooLongException('Comment message must not exceed ' . $maxLength. ' characters');
}
$this->data['message'] = $message;
return $this;

View File

@ -127,11 +127,12 @@ interface IComment {
* MessageTooLongException shall be thrown.
*
* @param string $message
* @param int $maxLength
* @return IComment
* @throws MessageTooLongException
* @since 9.0.0
* @since 9.0.0 - $maxLength added in 16.0.2
*/
public function setMessage($message);
public function setMessage($message, $maxLength = self::MAX_MESSAGE_LENGTH);
/**
* returns an array containing mentions that are included in the comment