From: Joas Schilling Date: Thu, 27 Oct 2016 13:43:34 +0000 (+0200) Subject: Allow rich object strings in messages as well X-Git-Tag: v11.0RC2~345^2~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=2c0b5dee19f1276a40a6dfdf5e13e7d5bafb20f3;p=nextcloud-server.git Allow rich object strings in messages as well Signed-off-by: Joas Schilling --- diff --git a/lib/private/Notification/Notification.php b/lib/private/Notification/Notification.php index 7346f35f966..39fc6ab9465 100644 --- a/lib/private/Notification/Notification.php +++ b/lib/private/Notification/Notification.php @@ -73,6 +73,12 @@ class Notification implements INotification { /** @var string */ protected $messageParsed; + /** @var string */ + protected $messageRich; + + /** @var array */ + protected $messageRichParameters; + /** @var string */ protected $link; @@ -112,6 +118,8 @@ class Notification implements INotification { $this->message = ''; $this->messageParameters = []; $this->messageParsed = ''; + $this->messageRich = ''; + $this->messageRichParameters = []; $this->link = ''; $this->icon = ''; $this->actions = []; @@ -373,6 +381,43 @@ class Notification implements INotification { return $this->messageParsed; } + /** + * @param string $message + * @param array $parameters + * @return $this + * @throws \InvalidArgumentException if the message or parameters are invalid + * @since 9.2.0 + */ + public function setRichMessage($message, array $parameters = []) { + if (!is_string($message) || $message === '') { + throw new \InvalidArgumentException('The given parsed message is invalid'); + } + $this->messageRich = $message; + + if (!is_array($parameters)) { + throw new \InvalidArgumentException('The given message parameters are invalid'); + } + $this->messageRichParameters = $parameters; + + return $this; + } + + /** + * @return string + * @since 9.2.0 + */ + public function getRichMessage() { + return $this->messageRich; + } + + /** + * @return array[] + * @since 9.2.0 + */ + public function getRichMessageParameters() { + return $this->messageRichParameters; + } + /** * @param string $link * @return $this @@ -516,6 +561,14 @@ class Notification implements INotification { } } + if ($this->getRichMessage() !== '' || !empty($this->getRichMessageParameters())) { + try { + $this->richValidator->validate($this->getRichMessage(), $this->getRichMessageParameters()); + } catch (InvalidObjectExeption $e) { + return false; + } + } + return $this->isValidCommon() && diff --git a/lib/public/Notification/INotification.php b/lib/public/Notification/INotification.php index 3a8bde0a375..55109a5ee2e 100644 --- a/lib/public/Notification/INotification.php +++ b/lib/public/Notification/INotification.php @@ -183,6 +183,27 @@ interface INotification { */ public function getParsedMessage(); + /** + * @param string $message + * @param array $parameters + * @return $this + * @throws \InvalidArgumentException if the message or parameters are invalid + * @since 9.2.0 + */ + public function setRichMessage($message, array $parameters = []); + + /** + * @return string + * @since 9.2.0 + */ + public function getRichMessage(); + + /** + * @return array[] + * @since 9.2.0 + */ + public function getRichMessageParameters(); + /** * @param string $link * @return $this