summaryrefslogtreecommitdiffstats
path: root/lib/public/RichObjectStrings
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2016-10-12 12:08:42 +0200
committerJoas Schilling <coding@schilljs.com>2016-10-20 12:14:51 +0200
commit20986488505616654177da1f861238f0232656fa (patch)
tree9019b92a582b25b5dd1dbbef73c16116692ff686 /lib/public/RichObjectStrings
parentf7f271154702883367f418c4f9e35418ab4219ef (diff)
downloadnextcloud-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.php39
-rw-r--r--lib/public/RichObjectStrings/InvalidObjectExeption.php31
-rw-r--r--lib/public/RichObjectStrings/definitions.json209
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"
+ }
+ }
+ }
+}