Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/spreed.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2021-11-26 15:16:27 +0300
committerJoas Schilling <coding@schilljs.com>2021-11-30 16:11:00 +0300
commit4bd40f62a31436951029acc26f8dfd19053fbf04 (patch)
treefab407aff3b5d1637aaa3c5ed97a70da5032fb75 /appinfo
parenta80083bd0efdc91caa50ad400794a00515c0b230 (diff)
Better routes files
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'appinfo')
-rw-r--r--appinfo/routes.php687
-rw-r--r--appinfo/routes/routesCallController.php38
-rw-r--r--appinfo/routes/routesChatController.php47
-rw-r--r--appinfo/routes/routesCommandController.php32
-rw-r--r--appinfo/routes/routesFederationController.php35
-rw-r--r--appinfo/routes/routesFilesIntegrationController.php37
-rw-r--r--appinfo/routes/routesGuestController.php33
-rw-r--r--appinfo/routes/routesHostedSignalingServerController.php36
-rw-r--r--appinfo/routes/routesMatterbridgeController.php38
-rw-r--r--appinfo/routes/routesMatterbridgeSettingsController.php35
-rw-r--r--appinfo/routes/routesPageController.php34
-rw-r--r--appinfo/routes/routesPublicShareAuthController.php30
-rw-r--r--appinfo/routes/routesRoomController.php73
-rw-r--r--appinfo/routes/routesSettingsController.php35
-rw-r--r--appinfo/routes/routesSignalingController.php46
-rw-r--r--appinfo/routes/routesTempAvatarController.php31
16 files changed, 599 insertions, 668 deletions
diff --git a/appinfo/routes.php b/appinfo/routes.php
index fc874c6a1..e888b7006 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
*
@@ -21,672 +23,21 @@
*
*/
-return [
- 'routes' => [
- [
- 'name' => 'Page#index',
- 'url' => '/',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'Page#notFound',
- 'url' => '/not-found',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'Page#duplicateSession',
- 'url' => '/duplicate-session',
- 'verb' => 'GET',
- ],
-
- [
- 'name' => 'Page#showCall',
- 'url' => '/call/{token}',
- 'verb' => 'GET',
- 'root' => '',
- ],
- [
- 'name' => 'Page#authenticatePassword',
- 'url' => '/call/{token}',
- 'verb' => 'POST',
- 'root' => '',
- ],
-
- ],
- 'ocs' => [
- /**
- * Signaling
- */
- [
- 'name' => 'Signaling#getSettings',
- 'url' => '/api/{apiVersion}/signaling/settings',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v(3)',
- ],
- ],
- [
- 'name' => 'Signaling#getWelcomeMessage',
- 'url' => '/api/{apiVersion}/signaling/welcome/{serverId}',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v(3)',
- 'serverId' => '^\d+$',
- ],
- ],
- [
- 'name' => 'Signaling#backend',
- 'url' => '/api/{apiVersion}/signaling/backend',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(3)',
- ],
- ],
- [
- 'name' => 'Signaling#signaling',
- 'url' => '/api/{apiVersion}/signaling/{token}',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(3)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Signaling#pullMessages',
- 'url' => '/api/{apiVersion}/signaling/{token}',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v(3)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
-
- /**
- * Call
- */
- [
- 'name' => 'Call#getPeersForCall',
- 'url' => '/api/{apiVersion}/call/{token}',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Call#joinCall',
- 'url' => '/api/{apiVersion}/call/{token}',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Call#updateCallFlags',
- 'url' => '/api/{apiVersion}/call/{token}',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Call#leaveCall',
- 'url' => '/api/{apiVersion}/call/{token}',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
-
- /**
- * Chat
- */
- [
- 'name' => 'Chat#receiveMessages',
- 'url' => '/api/{apiVersion}/chat/{token}',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Chat#sendMessage',
- 'url' => '/api/{apiVersion}/chat/{token}',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Chat#clearHistory',
- 'url' => '/api/{apiVersion}/chat/{token}',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Chat#deleteMessage',
- 'url' => '/api/{apiVersion}/chat/{token}/{messageId}',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- 'messageId' => '^[0-9]+$',
- ],
- ],
- [
- 'name' => 'Chat#setReadMarker',
- 'url' => '/api/{apiVersion}/chat/{token}/read',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Chat#mentions',
- 'url' => '/api/{apiVersion}/chat/{token}/mentions',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Chat#shareObjectToChat',
- 'url' => '/api/{apiVersion}/chat/{token}/share',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
-
- /**
- * Conversation (Room)
- */
- [
- 'name' => 'Room#getRooms',
- 'url' => '/api/{apiVersion}/room',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- ],
- ],
- [
- 'name' => 'Room#getListedRooms',
- 'url' => '/api/{apiVersion}/listed-room',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- ],
- ],
- [
- 'name' => 'Room#createRoom',
- 'url' => '/api/{apiVersion}/room',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- ],
- ],
- [
- 'name' => 'Room#getSingleRoom',
- 'url' => '/api/{apiVersion}/room/{token}',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#renameRoom',
- 'url' => '/api/{apiVersion}/room/{token}',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#deleteRoom',
- 'url' => '/api/{apiVersion}/room/{token}',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#makePublic',
- 'url' => '/api/{apiVersion}/room/{token}/public',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#makePrivate',
- 'url' => '/api/{apiVersion}/room/{token}/public',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setDescription',
- 'url' => '/api/{apiVersion}/room/{token}/description',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setReadOnly',
- 'url' => '/api/{apiVersion}/room/{token}/read-only',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setListable',
- 'url' => '/api/{apiVersion}/room/{token}/listable',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setPassword',
- 'url' => '/api/{apiVersion}/room/{token}/password',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setPermissions',
- 'url' => '/api/{apiVersion}/room/{token}/permissions/{mode}',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- 'mode' => '^(call|default)$',
- ],
- ],
- [
- 'name' => 'Room#getParticipants',
- 'url' => '/api/{apiVersion}/room/{token}/participants',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#addParticipantToRoom',
- 'url' => '/api/{apiVersion}/room/{token}/participants',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#removeSelfFromRoom',
- 'url' => '/api/{apiVersion}/room/{token}/participants/self',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#removeAttendeeFromRoom',
- 'url' => '/api/{apiVersion}/room/{token}/attendees',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setAttendeePermissions',
- 'url' => '/api/{apiVersion}/room/{token}/attendees/permissions',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setAllAttendeesPermissions',
- 'url' => '/api/{apiVersion}/room/{token}/attendees/permissions/all',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#joinRoom',
- 'url' => '/api/{apiVersion}/room/{token}/participants/active',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#resendInvitations',
- 'url' => '/api/{apiVersion}/room/{token}/participants/resend-invitations',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#leaveRoom',
- 'url' => '/api/{apiVersion}/room/{token}/participants/active',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#promoteModerator',
- 'url' => '/api/{apiVersion}/room/{token}/moderators',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#demoteModerator',
- 'url' => '/api/{apiVersion}/room/{token}/moderators',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#addToFavorites',
- 'url' => '/api/{apiVersion}/room/{token}/favorite',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#removeFromFavorites',
- 'url' => '/api/{apiVersion}/room/{token}/favorite',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#getParticipantByDialInPin',
- 'url' => '/api/{apiVersion}/room/{token}/pin/{pin}',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- 'pin' => '^\d{7,32}$',
- ],
- ],
- [
- 'name' => 'Room#setNotificationLevel',
- 'url' => '/api/{apiVersion}/room/{token}/notify',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setNotificationCalls',
- 'url' => '/api/{apiVersion}/room/{token}/notify-calls',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setLobby',
- 'url' => '/api/{apiVersion}/room/{token}/webinar/lobby',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Room#setSIPEnabled',
- 'url' => '/api/{apiVersion}/room/{token}/webinar/sip',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v(4)',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
-
- /**
- * Bridge settings
- */
- [
- 'name' => 'MatterbridgeSettings#stopAllBridges',
- 'url' => '/api/{apiVersion}/bridge',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
- [
- 'name' => 'MatterbridgeSettings#getMatterbridgeVersion',
- 'url' => '/api/{apiVersion}/bridge/version',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
-
- /**
- * Bridges
- */
- [
- 'name' => 'Matterbridge#getBridgeOfRoom',
- 'url' => '/api/{apiVersion}/bridge/{token}',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Matterbridge#getBridgeProcessState',
- 'url' => '/api/{apiVersion}/bridge/{token}/process',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Matterbridge#editBridgeOfRoom',
- 'url' => '/api/{apiVersion}/bridge/{token}',
- 'verb' => 'PUT',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
- [
- 'name' => 'Matterbridge#deleteBridgeOfRoom',
- 'url' => '/api/{apiVersion}/bridge/{token}',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
-
- /**
- * Federation
- */
-
- [
- 'name' => 'Federation#acceptShare',
- 'url' => 'api/{apiVersion}/federation/invitation/{id}',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
- [
- 'name' => 'Federation#rejectShare',
- 'url' => 'api/{apiVersion}/federation/invitation/{id}',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
-
- /**
- * PublicShareAuth
- */
- [
- 'name' => 'PublicShareAuth#createRoom',
- 'url' => '/api/{apiVersion}/publicshareauth',
- 'verb' => 'POST',
- 'requirements' => ['apiVersion' => 'v1'],
- ],
-
- /**
- * FilesIntegration
- */
- [
- 'name' => 'FilesIntegration#getRoomByFileId',
- 'url' => '/api/{apiVersion}/file/{fileId}',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'fileId' => '.+'
- ],
- ],
- [
- 'name' => 'FilesIntegration#getRoomByShareToken',
- 'url' => '/api/{apiVersion}/publicshare/{shareToken}',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'shareToken' => '.+',
- ],
- ],
-
- /**
- * Guest
- */
- [
- 'name' => 'Guest#setDisplayName',
- 'url' => '/api/{apiVersion}/guest/{token}/name',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v1',
- 'token' => '^[a-z0-9]{4,30}$',
- ],
- ],
-
- /**
- * Commands
- */
- [
- 'name' => 'Command#index',
- 'url' => '/api/{apiVersion}/command',
- 'verb' => 'GET',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
-
- /**
- * Settings
- */
- [
- 'name' => 'Settings#setSIPSettings',
- 'url' => '/api/{apiVersion}/settings/sip',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
- [
- 'name' => 'Settings#setUserSetting',
- 'url' => '/api/{apiVersion}/settings/user',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
-
- /**
- * HostedSignalingServer
- */
- [
- 'name' => 'HostedSignalingServer#requestTrial',
- 'url' => '/api/{apiVersion}/hostedsignalingserver/requesttrial',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
- [
- 'name' => 'HostedSignalingServer#auth',
- 'url' => '/api/{apiVersion}/hostedsignalingserver/auth',
- 'verb' => 'POST',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
- [
- 'name' => 'HostedSignalingServer#deleteAccount',
- 'url' => '/api/{apiVersion}/hostedsignalingserver/delete',
- 'verb' => 'DELETE',
- 'requirements' => [
- 'apiVersion' => 'v1',
- ],
- ],
-
- [
- 'name' => 'TempAvatar#postAvatar',
- 'url' => '/temp-user-avatar',
- 'verb' => 'POST',
- ],
- [
- 'name' => 'TempAvatar#deleteAvatar',
- 'url' => '/temp-user-avatar',
- 'verb' => 'DELETE',
- ],
- ],
-];
+return array_merge_recursive(
+ include(__DIR__ . '/routes/routesCallController.php'),
+ include(__DIR__ . '/routes/routesChatController.php'),
+ include(__DIR__ . '/routes/routesCommandController.php'),
+ include(__DIR__ . '/routes/routesFederationController.php'),
+ include(__DIR__ . '/routes/routesFilesIntegrationController.php'),
+ include(__DIR__ . '/routes/routesGuestController.php'),
+ include(__DIR__ . '/routes/routesHostedSignalingServerController.php'),
+ include(__DIR__ . '/routes/routesMatterbridgeController.php'),
+ include(__DIR__ . '/routes/routesMatterbridgeSettingsController.php'),
+ include(__DIR__ . '/routes/routesPageController.php'),
+ include(__DIR__ . '/routes/routesPublicShareAuthController.php'),
+ include(__DIR__ . '/routes/routesRoomController.php'),
+ include(__DIR__ . '/routes/routesSettingsController.php'),
+ include(__DIR__ . '/routes/routesSignalingController.php'),
+ include(__DIR__ . '/routes/routesTempAvatarController.php'),
+);
diff --git a/appinfo/routes/routesCallController.php b/appinfo/routes/routesCallController.php
new file mode 100644
index 000000000..14ea3b13b
--- /dev/null
+++ b/appinfo/routes/routesCallController.php
@@ -0,0 +1,38 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+$requirements = [
+ 'apiVersion' => 'v(4)',
+ 'token' => '^[a-z0-9]{4,30}$',
+];
+
+return [
+ 'ocs' => [
+ ['name' => 'Call#getPeersForCall', 'url' => '/api/{apiVersion}/call/{token}', 'verb' => 'GET', 'requirements' => $requirements],
+ ['name' => 'Call#joinCall', 'url' => '/api/{apiVersion}/call/{token}', 'verb' => 'POST', 'requirements' => $requirements],
+ ['name' => 'Call#updateCallFlags', 'url' => '/api/{apiVersion}/call/{token}', 'verb' => 'PUT', 'requirements' => $requirements],
+ ['name' => 'Call#leaveCall', 'url' => '/api/{apiVersion}/call/{token}', 'verb' => 'DELETE', 'requirements' => $requirements],
+ ],
+];
diff --git a/appinfo/routes/routesChatController.php b/appinfo/routes/routesChatController.php
new file mode 100644
index 000000000..53253b9fe
--- /dev/null
+++ b/appinfo/routes/routesChatController.php
@@ -0,0 +1,47 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+$requirements = [
+ 'apiVersion' => 'v1',
+ 'token' => '^[a-z0-9]{4,30}$',
+];
+
+$requirementsWithMessageId = [
+ 'apiVersion' => 'v1',
+ 'token' => '^[a-z0-9]{4,30}$',
+ 'messageId' => '^[0-9]+$',
+];
+
+return [
+ 'ocs' => [
+ ['name' => 'Chat#receiveMessages', 'url' => '/api/{apiVersion}/chat/{token}', 'verb' => 'GET', 'requirements' => $requirements],
+ ['name' => 'Chat#sendMessage', 'url' => '/api/{apiVersion}/chat/{token}', 'verb' => 'POST', 'requirements' => $requirements],
+ ['name' => 'Chat#clearHistory', 'url' => '/api/{apiVersion}/chat/{token}', 'verb' => 'DELETE', 'requirements' => $requirements],
+ ['name' => 'Chat#deleteMessage', 'url' => '/api/{apiVersion}/chat/{token}/{messageId}', 'verb' => 'DELETE', 'requirements' => $requirementsWithMessageId],
+ ['name' => 'Chat#setReadMarker', 'url' => '/api/{apiVersion}/chat/{token}/read', 'verb' => 'POST', 'requirements' => $requirements],
+ ['name' => 'Chat#mentions', 'url' => '/api/{apiVersion}/chat/{token}/mentions', 'verb' => 'GET', 'requirements' => $requirements],
+ ['name' => 'Chat#shareObjectToChat', 'url' => '/api/{apiVersion}/chat/{token}/share', 'verb' => 'POST', 'requirements' => $requirements],
+ ],
+];
diff --git a/appinfo/routes/routesCommandController.php b/appinfo/routes/routesCommandController.php
new file mode 100644
index 000000000..a2e59a922
--- /dev/null
+++ b/appinfo/routes/routesCommandController.php
@@ -0,0 +1,32 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+return [
+ 'ocs' => [
+ ['name' => 'Command#index', 'url' => '/api/{apiVersion}/command', 'verb' => 'GET', 'requirements' => [
+ 'apiVersion' => 'v1',
+ ]],
+ ],
+];
diff --git a/appinfo/routes/routesFederationController.php b/appinfo/routes/routesFederationController.php
new file mode 100644
index 000000000..4882e9abd
--- /dev/null
+++ b/appinfo/routes/routesFederationController.php
@@ -0,0 +1,35 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+$requirements = [
+ 'apiVersion' => 'v1',
+];
+
+return [
+ 'ocs' => [
+ ['name' => 'Federation#acceptShare', 'url' => 'api/{apiVersion}/federation/invitation/{id}', 'verb' => 'POST', 'requirements' => $requirements],
+ ['name' => 'Federation#rejectShare', 'url' => 'api/{apiVersion}/federation/invitation/{id}', 'verb' => 'DELETE', 'requirements' => $requirements],
+ ],
+];
diff --git a/appinfo/routes/routesFilesIntegrationController.php b/appinfo/routes/routesFilesIntegrationController.php
new file mode 100644
index 000000000..8e17c43c2
--- /dev/null
+++ b/appinfo/routes/routesFilesIntegrationController.php
@@ -0,0 +1,37 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+return [
+ 'ocs' => [
+ ['name' => 'FilesIntegration#getRoomByFileId', 'url' => '/api/{apiVersion}/file/{fileId}', 'verb' => 'GET', 'requirements' => [
+ 'apiVersion' => 'v1',
+ 'fileId' => '.+'
+ ]],
+ ['name' => 'FilesIntegration#getRoomByShareToken', 'url' => '/api/{apiVersion}/publicshare/{shareToken}', 'verb' => 'GET', 'requirements' => [
+ 'apiVersion' => 'v1',
+ 'shareToken' => '.+',
+ ]],
+ ],
+];
diff --git a/appinfo/routes/routesGuestController.php b/appinfo/routes/routesGuestController.php
new file mode 100644
index 000000000..bcd92dd46
--- /dev/null
+++ b/appinfo/routes/routesGuestController.php
@@ -0,0 +1,33 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+return [
+ 'ocs' => [
+ ['name' => 'Guest#setDisplayName', 'url' => '/api/{apiVersion}/guest/{token}/name', 'verb' => 'POST', 'requirements' => [
+ 'apiVersion' => 'v1',
+ 'token' => '^[a-z0-9]{4,30}$',
+ ]],
+ ],
+];
diff --git a/appinfo/routes/routesHostedSignalingServerController.php b/appinfo/routes/routesHostedSignalingServerController.php
new file mode 100644
index 000000000..628d60368
--- /dev/null
+++ b/appinfo/routes/routesHostedSignalingServerController.php
@@ -0,0 +1,36 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+$requirements = [
+ 'apiVersion' => 'v1',
+];
+
+return [
+ 'ocs' => [
+ ['name' => 'HostedSignalingServer#requestTrial', 'url' => '/api/{apiVersion}/hostedsignalingserver/requesttrial', 'verb' => 'POST', 'requirements' => $requirements],
+ ['name' => 'HostedSignalingServer#auth', 'url' => '/api/{apiVersion}/hostedsignalingserver/auth', 'verb' => 'POST', 'requirements' => $requirements],
+ ['name' => 'HostedSignalingServer#deleteAccount', 'url' => '/api/{apiVersion}/hostedsignalingserver/delete', 'verb' => 'DELETE', 'requirements' => $requirements],
+ ],
+];
diff --git a/appinfo/routes/routesMatterbridgeController.php b/appinfo/routes/routesMatterbridgeController.php
new file mode 100644
index 000000000..08d3cec2e
--- /dev/null
+++ b/appinfo/routes/routesMatterbridgeController.php
@@ -0,0 +1,38 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+$requirements = [
+ 'apiVersion' => 'v1',
+ 'token' => '^[a-z0-9]{4,30}$',
+];
+
+return [
+ 'ocs' => [
+ ['name' => 'Matterbridge#getBridgeOfRoom', 'url' => '/api/{apiVersion}/bridge/{token}', 'verb' => 'GET', 'requirements' => $requirements],
+ ['name' => 'Matterbridge#getBridgeProcessState', 'url' => '/api/{apiVersion}/bridge/{token}/process', 'verb' => 'GET', 'requirements' => $requirements],
+ ['name' => 'Matterbridge#editBridgeOfRoom', 'url' => '/api/{apiVersion}/bridge/{token}', 'verb' => 'PUT', 'requirements' => $requirements],
+ ['name' => 'Matterbridge#deleteBridgeOfRoom', 'url' => '/api/{apiVersion}/bridge/{token}', 'verb' => 'DELETE', 'requirements' => $requirements],
+ ],
+];
diff --git a/appinfo/routes/routesMatterbridgeSettingsController.php b/appinfo/routes/routesMatterbridgeSettingsController.php
new file mode 100644
index 000000000..69bfd8afe
--- /dev/null
+++ b/appinfo/routes/routesMatterbridgeSettingsController.php
@@ -0,0 +1,35 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+$requirements = [
+ 'apiVersion' => 'v1',
+];
+
+return [
+ 'ocs' => [
+ ['name' => 'MatterbridgeSettings#stopAllBridges', 'url' => '/api/{apiVersion}/bridge', 'verb' => 'DELETE', 'requirements' => $requirements],
+ ['name' => 'MatterbridgeSettings#getMatterbridgeVersion', 'url' => '/api/{apiVersion}/bridge/version', 'verb' => 'GET', 'requirements' => $requirements],
+ ],
+];
diff --git a/appinfo/routes/routesPageController.php b/appinfo/routes/routesPageController.php
new file mode 100644
index 000000000..4ba719803
--- /dev/null
+++ b/appinfo/routes/routesPageController.php
@@ -0,0 +1,34 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+return [
+ 'routes' => [
+ ['name' => 'Page#index', 'url' => '/', 'verb' => 'GET'],
+ ['name' => 'Page#notFound', 'url' => '/not-found', 'verb' => 'GET'],
+ ['name' => 'Page#duplicateSession', 'url' => '/duplicate-session', 'verb' => 'GET'],
+ ['name' => 'Page#showCall', 'url' => '/call/{token}', 'root' => '', 'verb' => 'GET'],
+ ['name' => 'Page#authenticatePassword', 'url' => '/call/{token}', 'root' => '', 'verb' => 'POST'],
+ ],
+];
diff --git a/appinfo/routes/routesPublicShareAuthController.php b/appinfo/routes/routesPublicShareAuthController.php
new file mode 100644
index 000000000..b177e0de8
--- /dev/null
+++ b/appinfo/routes/routesPublicShareAuthController.php
@@ -0,0 +1,30 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+return [
+ 'ocs' => [
+ ['name' => 'PublicShareAuth#createRoom', 'url' => '/api/{apiVersion}/publicshareauth', 'verb' => 'POST', 'requirements' => ['apiVersion' => 'v1'],],
+ ],
+];
diff --git a/appinfo/routes/routesRoomController.php b/appinfo/routes/routesRoomController.php
new file mode 100644
index 000000000..5f1d9aaf6
--- /dev/null
+++ b/appinfo/routes/routesRoomController.php
@@ -0,0 +1,73 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+$requirements = [
+ 'apiVersion' => 'v(4)',
+];
+
+$requirementsWithToken = [
+ 'apiVersion' => 'v(4)',
+ 'token' => '^[a-z0-9]{4,30}$',
+];
+
+return [
+ 'ocs' => [
+ ['name' => 'Room#getRooms', 'url' => '/api/{apiVersion}/room', 'verb' => 'GET', 'requirements' => $requirements],
+ ['name' => 'Room#getListedRooms', 'url' => '/api/{apiVersion}/listed-room', 'verb' => 'GET', 'requirements' => $requirements],
+ ['name' => 'Room#createRoom', 'url' => '/api/{apiVersion}/room', 'verb' => 'POST', 'requirements' => $requirements],
+ ['name' => 'Room#getSingleRoom', 'url' => '/api/{apiVersion}/room/{token}', 'verb' => 'GET', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#renameRoom', 'url' => '/api/{apiVersion}/room/{token}', 'verb' => 'PUT', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#deleteRoom', 'url' => '/api/{apiVersion}/room/{token}', 'verb' => 'DELETE', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#makePublic', 'url' => '/api/{apiVersion}/room/{token}/public', 'verb' => 'POST', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#makePrivate', 'url' => '/api/{apiVersion}/room/{token}/public', 'verb' => 'DELETE', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setDescription', 'url' => '/api/{apiVersion}/room/{token}/description', 'verb' => 'PUT', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setReadOnly', 'url' => '/api/{apiVersion}/room/{token}/read-only', 'verb' => 'PUT', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setListable', 'url' => '/api/{apiVersion}/room/{token}/listable', 'verb' => 'PUT', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setPassword', 'url' => '/api/{apiVersion}/room/{token}/password', 'verb' => 'PUT', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setPermissions', 'url' => '/api/{apiVersion}/room/{token}/permissions/{mode}', 'verb' => 'PUT', 'requirements' => array_merge($requirementsWithToken, [
+ 'mode' => '^(call|default)$',
+ ])],
+ ['name' => 'Room#getParticipants', 'url' => '/api/{apiVersion}/room/{token}/participants', 'verb' => 'GET', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#addParticipantToRoom', 'url' => '/api/{apiVersion}/room/{token}/participants', 'verb' => 'POST', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#removeSelfFromRoom', 'url' => '/api/{apiVersion}/room/{token}/participants/self', 'verb' => 'DELETE', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#removeAttendeeFromRoom', 'url' => '/api/{apiVersion}/room/{token}/attendees', 'verb' => 'DELETE', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setAttendeePermissions', 'url' => '/api/{apiVersion}/room/{token}/attendees/permissions', 'verb' => 'PUT', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setAllAttendeesPermissions', 'url' => '/api/{apiVersion}/room/{token}/attendees/permissions/all', 'verb' => 'PUT', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#joinRoom', 'url' => '/api/{apiVersion}/room/{token}/participants/active', 'verb' => 'POST', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#resendInvitations', 'url' => '/api/{apiVersion}/room/{token}/participants/resend-invitations', 'verb' => 'POST', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#leaveRoom', 'url' => '/api/{apiVersion}/room/{token}/participants/active', 'verb' => 'DELETE', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#promoteModerator', 'url' => '/api/{apiVersion}/room/{token}/moderators', 'verb' => 'POST', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#demoteModerator', 'url' => '/api/{apiVersion}/room/{token}/moderators', 'verb' => 'DELETE', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#addToFavorites', 'url' => '/api/{apiVersion}/room/{token}/favorite', 'verb' => 'POST', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#removeFromFavorites', 'url' => '/api/{apiVersion}/room/{token}/favorite', 'verb' => 'DELETE', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#getParticipantByDialInPin', 'url' => '/api/{apiVersion}/room/{token}/pin/{pin}', 'verb' => 'GET', 'requirements' => array_merge($requirementsWithToken, [
+ 'pin' => '^\d{7,32}$',
+ ])],
+ ['name' => 'Room#setNotificationLevel', 'url' => '/api/{apiVersion}/room/{token}/notify', 'verb' => 'POST', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setNotificationCalls', 'url' => '/api/{apiVersion}/room/{token}/notify-calls', 'verb' => 'POST', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setLobby', 'url' => '/api/{apiVersion}/room/{token}/webinar/lobby', 'verb' => 'PUT', 'requirements' => $requirementsWithToken],
+ ['name' => 'Room#setSIPEnabled', 'url' => '/api/{apiVersion}/room/{token}/webinar/sip', 'verb' => 'PUT', 'requirements' => $requirementsWithToken],
+ ],
+];
diff --git a/appinfo/routes/routesSettingsController.php b/appinfo/routes/routesSettingsController.php
new file mode 100644
index 000000000..6829ebea3
--- /dev/null
+++ b/appinfo/routes/routesSettingsController.php
@@ -0,0 +1,35 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+$requirements = [
+ 'apiVersion' => 'v1',
+];
+
+return [
+ 'ocs' => [
+ ['name' => 'Settings#setSIPSettings', 'url' => '/api/{apiVersion}/settings/sip', 'verb' => 'POST', 'requirements' => $requirements],
+ ['name' => 'Settings#setUserSetting', 'url' => '/api/{apiVersion}/settings/user', 'verb' => 'POST', 'requirements' => $requirements],
+ ],
+];
diff --git a/appinfo/routes/routesSignalingController.php b/appinfo/routes/routesSignalingController.php
new file mode 100644
index 000000000..48f404867
--- /dev/null
+++ b/appinfo/routes/routesSignalingController.php
@@ -0,0 +1,46 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+$requirements = [
+ 'apiVersion' => 'v(3)',
+];
+
+
+$requirementsWithToken = [
+ 'apiVersion' => 'v(3)',
+ 'token' => '^[a-z0-9]{4,30}$',
+];
+
+return [
+ 'ocs' => [
+ ['name' => 'Signaling#getSettings', 'url' => '/api/{apiVersion}/signaling/settings', 'verb' => 'GET', 'requirements' => $requirements],
+ ['name' => 'Signaling#getWelcomeMessage', 'url' => '/api/{apiVersion}/signaling/welcome/{serverId}', 'verb' => 'GET', 'requirements' => array_merge($requirements, [
+ 'serverId' => '^\d+$',
+ ])],
+ ['name' => 'Signaling#backend', 'url' => '/api/{apiVersion}/signaling/backend', 'verb' => 'POST', 'requirements' => $requirements],
+ ['name' => 'Signaling#signaling', 'url' => '/api/{apiVersion}/signaling/{token}', 'verb' => 'POST', 'requirements' => $requirementsWithToken],
+ ['name' => 'Signaling#pullMessages', 'url' => '/api/{apiVersion}/signaling/{token}', 'verb' => 'GET', 'requirements' => $requirementsWithToken],
+ ],
+];
diff --git a/appinfo/routes/routesTempAvatarController.php b/appinfo/routes/routesTempAvatarController.php
new file mode 100644
index 000000000..17e3e9694
--- /dev/null
+++ b/appinfo/routes/routesTempAvatarController.php
@@ -0,0 +1,31 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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/>.
+ *
+ */
+
+return [
+ 'ocs' => [
+ ['name' => 'TempAvatar#postAvatar', 'url' => '/temp-user-avatar', 'verb' => 'POST'],
+ ['name' => 'TempAvatar#deleteAvatar', 'url' => '/temp-user-avatar', 'verb' => 'DELETE'],
+ ],
+];