Allow rich object strings in messages as well

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2016-10-27 15:43:34 +02:00
parent 6d2d069c17
commit 2c0b5dee19
No known key found for this signature in database
GPG key ID: E166FD8976B3BAC8
2 changed files with 74 additions and 0 deletions

View file

@ -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()
&&

View file

@ -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