diff options
author | Joas Schilling <coding@schilljs.com> | 2021-11-26 15:16:27 +0300 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2021-11-30 16:11:00 +0300 |
commit | 4bd40f62a31436951029acc26f8dfd19053fbf04 (patch) | |
tree | fab407aff3b5d1637aaa3c5ed97a70da5032fb75 /appinfo | |
parent | a80083bd0efdc91caa50ad400794a00515c0b230 (diff) |
Better routes files
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'appinfo')
-rw-r--r-- | appinfo/routes.php | 687 | ||||
-rw-r--r-- | appinfo/routes/routesCallController.php | 38 | ||||
-rw-r--r-- | appinfo/routes/routesChatController.php | 47 | ||||
-rw-r--r-- | appinfo/routes/routesCommandController.php | 32 | ||||
-rw-r--r-- | appinfo/routes/routesFederationController.php | 35 | ||||
-rw-r--r-- | appinfo/routes/routesFilesIntegrationController.php | 37 | ||||
-rw-r--r-- | appinfo/routes/routesGuestController.php | 33 | ||||
-rw-r--r-- | appinfo/routes/routesHostedSignalingServerController.php | 36 | ||||
-rw-r--r-- | appinfo/routes/routesMatterbridgeController.php | 38 | ||||
-rw-r--r-- | appinfo/routes/routesMatterbridgeSettingsController.php | 35 | ||||
-rw-r--r-- | appinfo/routes/routesPageController.php | 34 | ||||
-rw-r--r-- | appinfo/routes/routesPublicShareAuthController.php | 30 | ||||
-rw-r--r-- | appinfo/routes/routesRoomController.php | 73 | ||||
-rw-r--r-- | appinfo/routes/routesSettingsController.php | 35 | ||||
-rw-r--r-- | appinfo/routes/routesSignalingController.php | 46 | ||||
-rw-r--r-- | appinfo/routes/routesTempAvatarController.php | 31 |
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'], + ], +]; |