diff options
author | Morris Jobke <hey@morrisjobke.de> | 2016-10-27 15:30:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-27 15:30:58 +0200 |
commit | d4969abc9d306b5b5539f4e7722fc5ee1c722082 (patch) | |
tree | b495bf61e890e8aed244e9cff50fde4e9c38ca86 /lib/public | |
parent | ba2b274fccdeb06ea9ddba0590644653e073d934 (diff) | |
parent | ced3aeacb1aadfe592894ea666f0aa8777932597 (diff) | |
download | nextcloud-server-d4969abc9d306b5b5539f4e7722fc5ee1c722082.tar.gz nextcloud-server-d4969abc9d306b5b5539f4e7722fc5ee1c722082.zip |
Merge pull request #1800 from nextcloud/nextcloud-rich-object-strings
Nextcloud rich object strings
Diffstat (limited to 'lib/public')
-rw-r--r-- | lib/public/Notification/INotification.php | 21 | ||||
-rw-r--r-- | lib/public/RichObjectStrings/IValidator.php | 39 | ||||
-rw-r--r-- | lib/public/RichObjectStrings/InvalidObjectExeption.php | 31 | ||||
-rw-r--r-- | lib/public/RichObjectStrings/definitions.json | 228 |
4 files changed, 319 insertions, 0 deletions
diff --git a/lib/public/Notification/INotification.php b/lib/public/Notification/INotification.php index fd16876a666..3a8bde0a375 100644 --- a/lib/public/Notification/INotification.php +++ b/lib/public/Notification/INotification.php @@ -128,6 +128,27 @@ interface INotification { public function getParsedSubject(); /** + * @param string $subject + * @param array $parameters + * @return $this + * @throws \InvalidArgumentException if the subject or parameters are invalid + * @since 9.2.0 + */ + public function setRichSubject($subject, array $parameters = []); + + /** + * @return string + * @since 9.2.0 + */ + public function getRichSubject(); + + /** + * @return array[] + * @since 9.2.0 + */ + public function getRichSubjectParameters(); + + /** * @param string $message * @param array $parameters * @return $this diff --git a/lib/public/RichObjectStrings/IValidator.php b/lib/public/RichObjectStrings/IValidator.php new file mode 100644 index 00000000000..bba098bdfc1 --- /dev/null +++ b/lib/public/RichObjectStrings/IValidator.php @@ -0,0 +1,39 @@ +<?php +/** + * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\RichObjectStrings; + +/** + * Class Validator + * + * @package OCP\RichObjectStrings + * @since 9.2.0 + */ +interface IValidator { + + /** + * @param string $subject + * @param array[] $parameters + * @throws InvalidObjectExeption + * @since 9.2.0 + */ + public function validate($subject, array $parameters); +} diff --git a/lib/public/RichObjectStrings/InvalidObjectExeption.php b/lib/public/RichObjectStrings/InvalidObjectExeption.php new file mode 100644 index 00000000000..8bf597ebe90 --- /dev/null +++ b/lib/public/RichObjectStrings/InvalidObjectExeption.php @@ -0,0 +1,31 @@ +<?php +/** + * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\RichObjectStrings; + +/** + * Class InvalidObjectExeption + * + * @package OCP\RichObjectStrings + * @since 9.2.0 + */ +class InvalidObjectExeption extends \InvalidArgumentException { +} diff --git a/lib/public/RichObjectStrings/definitions.json b/lib/public/RichObjectStrings/definitions.json new file mode 100644 index 00000000000..222f6615cf4 --- /dev/null +++ b/lib/public/RichObjectStrings/definitions.json @@ -0,0 +1,228 @@ +{ + "addressbook": { + "author": "Nextcloud", + "app": "dav", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the addressbook on the instance", + "example": "42" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The display name of the addressbook which should be used in the visual representation", + "example": "Contacts" + } + } + }, + "addressbook-contact": { + "author": "Nextcloud", + "app": "dav", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the contact on the instance", + "example": "42" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The display name of the contact which should be used in the visual representation", + "example": "John Doe" + } + } + }, + "announcement": { + "author": "Joas Schilling", + "app": "announcementcenter", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the announcement on the instance", + "example": "42" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The announcement subject which should be used in the visual representation", + "example": "file.txt" + }, + "link": { + "since": "9.2.0", + "required": false, + "description": "The full URL to the file", + "example": "http://localhost/index.php/apps/announcements/#23" + } + } + }, + "calendar": { + "author": "Nextcloud", + "app": "dav", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the calendar on the instance", + "example": "42" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The display name of the calendar which should be used in the visual representation", + "example": "Personal" + } + } + }, + "calendar-event": { + "author": "Nextcloud", + "app": "dav", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the event on the instance", + "example": "42" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The display name of the event which should be used in the visual representation", + "example": "Workout" + } + } + }, + "file": { + "author": "Nextcloud", + "app": "dav", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the file on the instance", + "example": "42" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The file name which should be used in the visual representation", + "example": "file.txt" + }, + "path": { + "since": "9.2.0", + "required": true, + "description": "The full path of the file for the user", + "example": "path/to/file.txt" + }, + "link": { + "since": "9.2.0", + "required": false, + "description": "The full URL to the file", + "example": "http://localhost/index.php/f/42" + } + } + }, + "pending-federated-share": { + "author": "Nextcloud", + "app": "dav", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the federated share on the instance", + "example": "42" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The name of the shared item which should be used in the visual representation", + "example": "file.txt" + } + } + }, + "systemtag": { + "author": "Nextcloud", + "app": "core", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the systemtag on the instance", + "example": "23" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The display name of the systemtag which should be used in the visual representation", + "example": "Project 1" + }, + "visibility": { + "since": "9.2.0", + "required": true, + "description": "If the user can see the systemtag", + "example": "1" + }, + "assignable": { + "since": "9.2.0", + "required": true, + "description": "If the user can assign the systemtag", + "example": "0" + } + } + }, + "user": { + "author": "Nextcloud", + "app": "core", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the user on the instance", + "example": "johndoe" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The display name of the user which should be used in the visual representation", + "example": "John Doe" + }, + "server": { + "since": "9.2.0", + "required": false, + "description": "The URL of the instance the user lives on", + "example": "localhost" + } + } + }, + "user-group": { + "author": "Nextcloud", + "app": "core", + "since": "9.2.0", + "parameters": { + "id": { + "since": "9.2.0", + "required": true, + "description": "The id used to identify the group on the instance", + "example": "supportteam" + }, + "name": { + "since": "9.2.0", + "required": true, + "description": "The display name of the group which should be used in the visual representation", + "example": "Support Team" + } + } + } +} |