diff options
author | Joas Schilling <coding@schilljs.com> | 2016-10-12 12:08:42 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2016-10-20 12:14:51 +0200 |
commit | 20986488505616654177da1f861238f0232656fa (patch) | |
tree | 9019b92a582b25b5dd1dbbef73c16116692ff686 /lib/public/RichObjectStrings | |
parent | f7f271154702883367f418c4f9e35418ab4219ef (diff) | |
download | nextcloud-server-20986488505616654177da1f861238f0232656fa.tar.gz nextcloud-server-20986488505616654177da1f861238f0232656fa.zip |
Add Rich Object Definitions and a validator
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/public/RichObjectStrings')
-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 | 209 |
3 files changed, 279 insertions, 0 deletions
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..581572eb345 --- /dev/null +++ b/lib/public/RichObjectStrings/definitions.json @@ -0,0 +1,209 @@ +{ + "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" + } + } + }, + "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" + } + } + } +} |