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

Method removeSubtree

src/FileRise/Domain/FolderCrypto.php:365–394  ·  view source on GitHub ↗
(string $folder)

Source from the content-addressed store, hash-verified

363 }
364
365 public static function removeSubtree(string $folder): array
366 {
367 $src = self::normalizeKey($folder);
368 $doc = self::load();
369 $folders = is_array($doc['folders'] ?? null) ? $doc['folders'] : [];
370 if (!$folders) {
371 return ['changed' => false, 'removed' => 0];
372 }
373
374 $changed = false;
375 $removed = 0;
376 $next = $folders;
377
378 foreach ($folders as $k => $_row) {
379 if ($k === $src || strpos($k, $src . '/') === 0) {
380 unset($next[$k]);
381 $changed = true;
382 $removed++;
383 }
384 }
385
386 if (!$changed) {
387 return ['changed' => false, 'removed' => 0];
388 }
389
390 $doc2 = ['v' => self::SCHEMA_VERSION, 'folders' => $next];
391 $ok = self::write($doc2);
392
393 return ['changed' => $ok, 'removed' => $removed];
394 }
395}

Callers 3

deleteFolderMethod · 0.80

Calls 3

normalizeKeyMethod · 0.95
loadMethod · 0.95
writeMethod · 0.95

Tested by

no test coverage detected