MCPcopy Create free account
hub / github.com/error311/FileRise / dispatch

Method dispatch

src/FileRise/Domain/McpCoreOpsService.php:73–133  ·  view source on GitHub ↗

* Dispatch one guarded operation. * * @param array $payload * @param array $authContext * @return array */

(string $operation, array $payload = [], array $authContext = [])

Source from the content-addressed store, hash-verified

71 * @return array<string,mixed>
72 */
73 public static function dispatch(string $operation, array $payload = [], array $authContext = []): array
74 {
75 try {
76 self::ensureBootstrap();
77 $ctx = McpOpsContext::fromAuthPayload($authContext);
78 $op = self::normalizeOperation($operation);
79
80 switch ($op) {
81 case 'list_folders':
82 case 'list_children':
83 return self::opListFolders($ctx, $payload);
84 case 'list_files':
85 return self::opListFiles($ctx, $payload);
86 case 'read_file':
87 return self::opReadFile($ctx, $payload);
88 case 'create_file':
89 return self::opCreateFile($ctx, $payload);
90 case 'create_folder':
91 return self::opCreateFolder($ctx, $payload);
92 case 'copy_files':
93 return self::opCopyFiles($ctx, $payload);
94 case 'move_files':
95 return self::opMoveFiles($ctx, $payload);
96 case 'rename_file':
97 return self::opRenameFile($ctx, $payload);
98 case 'move_folder':
99 case 'move_folders':
100 return self::opMoveFolder($ctx, $payload);
101 case 'delete_files':
102 return self::opDeleteFiles($ctx, $payload);
103 case 'delete_folder':
104 return self::opDeleteFolder($ctx, $payload);
105 case 'save_file_tag':
106 return self::opSaveFileTag($ctx, $payload);
107 case 'get_file_tags':
108 return self::opGetFileTags($ctx, $payload);
109 default:
110 throw new RuntimeException(
111 'Unsupported MCP core operation. raw=' . trim($operation) . ' normalized=' . $op,
112 400
113 );
114 }
115 } catch (RuntimeException $e) {
116 $status = (int)$e->getCode();
117 if ($status < 400 || $status > 599) {
118 $status = 400;
119 }
120 return [
121 'ok' => false,
122 'error' => $e->getMessage(),
123 'status' => $status,
124 ];
125 } catch (Throwable $e) {
126 error_log('McpCoreOpsService::dispatch error: ' . $e->getMessage());
127 return [
128 'ok' => false,
129 'error' => 'Internal error',
130 'status' => 500,

Callers 1

fr_mcp_core_ops_dispatchFunction · 0.80

Calls 15

ensureBootstrapMethod · 0.95
normalizeOperationMethod · 0.95
opListFoldersMethod · 0.95
opListFilesMethod · 0.95
opReadFileMethod · 0.95
opCreateFileMethod · 0.95
opCreateFolderMethod · 0.95
opCopyFilesMethod · 0.95
opMoveFilesMethod · 0.95
opRenameFileMethod · 0.95
opMoveFolderMethod · 0.95
opDeleteFilesMethod · 0.95

Tested by

no test coverage detected