|
5 | 5 | use FileRise\Support\ACL; |
6 | 6 | use FileRise\Support\CryptoAtRest; |
7 | 7 | use FileRise\Support\FS; |
| 8 | +use FileRise\Support\MetadataPath; |
8 | 9 | use FileRise\Support\UploadNamePolicy; |
9 | 10 | use FileRise\Support\WorkerLauncher; |
10 | 11 | use FileRise\Storage\StorageAdapterInterface; |
@@ -65,11 +66,7 @@ private static function metaRootForId(string $sourceId): string |
65 | 66 |
|
66 | 67 | private static function getMetadataFilePathForRoot(string $metaRoot, string $folder): string |
67 | 68 | { |
68 | | - $metaRoot = rtrim($metaRoot, "/\\") . DIRECTORY_SEPARATOR; |
69 | | - if (strtolower($folder) === 'root' || trim($folder) === '') { |
70 | | - return $metaRoot . "root_metadata.json"; |
71 | | - } |
72 | | - return $metaRoot . str_replace(['/', '\\', ' '], '-', trim($folder)) . '_metadata.json'; |
| 69 | + return MetadataPath::path($metaRoot, $folder); |
73 | 70 | } |
74 | 71 |
|
75 | 72 | private static function trashRoot(): string |
@@ -1188,8 +1185,7 @@ public static function renameFile($folder, $oldName, $newName) |
1188 | 1185 | // Perform the rename. |
1189 | 1186 | if ($storage->move($oldPath, $newPath)) { |
1190 | 1187 | // Update the metadata file. |
1191 | | - $metadataKey = ($folder === 'root') ? "root" : $folder; |
1192 | | - $metadataFile = self::metaRoot() . str_replace(['/', '\\', ' '], '-', trim($metadataKey)) . '_metadata.json'; |
| 1188 | + $metadataFile = self::getMetadataFilePath($folder); |
1193 | 1189 |
|
1194 | 1190 | if (file_exists($metadataFile)) { |
1195 | 1191 | $metadata = json_decode(file_get_contents($metadataFile), true); |
@@ -1300,9 +1296,7 @@ public static function saveFile(string $folder, string $fileName, $content, ?str |
1300 | 1296 | } |
1301 | 1297 |
|
1302 | 1298 | // Metadata |
1303 | | - $metadataKey = strtolower($folder) === "root" ? "root" : $folder; |
1304 | | - $metadataFileName = str_replace(['/', '\\', ' '], '-', trim($metadataKey)) . '_metadata.json'; |
1305 | | - $metadataFilePath = self::metaRoot() . $metadataFileName; |
| 1299 | + $metadataFilePath = self::getMetadataFilePath($folder); |
1306 | 1300 |
|
1307 | 1301 | $metadata = file_exists($metadataFilePath) ? (json_decode(file_get_contents($metadataFilePath), true) ?: []) : []; |
1308 | 1302 |
|
@@ -3213,12 +3207,7 @@ public static function restoreFiles(array $trashFiles) |
3213 | 3207 | } |
3214 | 3208 |
|
3215 | 3209 | // Helper to get metadata file path for a folder. |
3216 | | - $getMetadataFilePath = function ($folder) { |
3217 | | - if (strtolower($folder) === 'root' || trim($folder) === '') { |
3218 | | - return self::metaRoot() . "root_metadata.json"; |
3219 | | - } |
3220 | | - return self::metaRoot() . str_replace(['/', '\\', ' '], '-', trim($folder)) . '_metadata.json'; |
3221 | | - }; |
| 3210 | + $getMetadataFilePath = static fn($folder): string => self::getMetadataFilePath((string)$folder); |
3222 | 3211 |
|
3223 | 3212 | // Process each provided trash file name. |
3224 | 3213 | foreach ($trashFiles as $trashFileName) { |
@@ -3524,9 +3513,7 @@ public static function saveFileTag(string $folder, string $file, array $tags, bo |
3524 | 3513 | $tags = self::sanitizeTags($tags); |
3525 | 3514 |
|
3526 | 3515 | // Determine the folder metadata file. |
3527 | | - $metadataFile = (strtolower($folder) === "root") |
3528 | | - ? self::metaRoot() . "root_metadata.json" |
3529 | | - : self::metaRoot() . str_replace(['/', '\\', ' '], '-', trim($folder)) . '_metadata.json'; |
| 3516 | + $metadataFile = self::getMetadataFilePath($folder); |
3530 | 3517 |
|
3531 | 3518 | // Load existing metadata for this folder. |
3532 | 3519 | $metadata = []; |
@@ -3650,15 +3637,7 @@ public static function getFileList(string $folder, array $options = []): array |
3650 | 3637 | return ["error" => "Invalid folder name."]; |
3651 | 3638 | } |
3652 | 3639 |
|
3653 | | - // Helper: Build the metadata file path. |
3654 | | - $getMetadataFilePath = function (string $folder): string { |
3655 | | - $metaRoot = self::metaRoot(); |
3656 | | - if (strtolower($folder) === 'root' || trim($folder) === '') { |
3657 | | - return $metaRoot . "root_metadata.json"; |
3658 | | - } |
3659 | | - return $metaRoot . str_replace(['/', '\\', ' '], '-', trim($folder)) . '_metadata.json'; |
3660 | | - }; |
3661 | | - $metadataFile = $getMetadataFilePath($folder); |
| 3640 | + $metadataFile = self::getMetadataFilePath($folder); |
3662 | 3641 | $metadata = file_exists($metadataFile) ? (json_decode(file_get_contents($metadataFile), true) ?: []) : []; |
3663 | 3642 |
|
3664 | 3643 | $dirStat = $storage->stat($directory); |
@@ -4031,9 +4010,7 @@ public static function createFile(string $folder, string $filename, string $uplo |
4031 | 4010 | } |
4032 | 4011 |
|
4033 | 4012 | // 5) write metadata |
4034 | | - $metaKey = (strtolower($folder) === 'root' || trim($folder) === '') ? 'root' : $folder; |
4035 | | - $metaName = str_replace(['/', '\\', ' '], '-', $metaKey) . '_metadata.json'; |
4036 | | - $metaPath = self::metaRoot() . $metaName; |
| 4013 | + $metaPath = self::getMetadataFilePath($folder); |
4037 | 4014 |
|
4038 | 4015 | $collection = []; |
4039 | 4016 | if (file_exists($metaPath)) { |
|
0 commit comments