Merge pull request #1937 from nextcloud/ros-for-notification-message

Allow rich object strings in messages as well
This commit is contained in:
Roeland Jago Douma 2016-10-31 11:51:02 +01:00 committed by GitHub
commit e416ee7b74
2 changed files with 76 additions and 12 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 = [];
@ -231,12 +239,10 @@ class Notification implements INotification {
if (!is_string($subject) || $subject === '' || isset($subject[64])) {
throw new \InvalidArgumentException('The given subject is invalid');
}
$this->subject = $subject;
if (!is_array($parameters)) {
throw new \InvalidArgumentException('The given subject parameters are invalid');
}
$this->subject = $subject;
$this->subjectParameters = $parameters;
return $this;
}
@ -289,11 +295,8 @@ class Notification implements INotification {
if (!is_string($subject) || $subject === '') {
throw new \InvalidArgumentException('The given parsed subject is invalid');
}
$this->subjectRich = $subject;
if (!is_array($parameters)) {
throw new \InvalidArgumentException('The given subject parameters are invalid');
}
$this->subjectRich = $subject;
$this->subjectRichParameters = $parameters;
return $this;
@ -326,12 +329,10 @@ class Notification implements INotification {
if (!is_string($message) || $message === '' || isset($message[64])) {
throw new \InvalidArgumentException('The given message is invalid');
}
$this->message = $message;
if (!is_array($parameters)) {
throw new \InvalidArgumentException('The given message parameters are invalid');
}
$this->message = $message;
$this->messageParameters = $parameters;
return $this;
}
@ -373,6 +374,40 @@ 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;
$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 +551,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