fix(orders): delete NAS folder when order delete modal's checkbox is ticked

The order delete modal sends { delete_files }, but the route ignored the
body and deleteOrder never touched the NAS — so the project folder of an
order-spawned project always stayed on the share (the only way to delete
such a project is via its order, since deleteProject blocks order-linked
projects). Project delete (standalone projects) already worked.

- orders route: read delete_files from the body, pass to deleteOrder.
- orders.service deleteOrder(id, deleteFiles): select project_number and,
  after the DB transaction commits, best-effort deleteProjectFolder for
  each linked project when the flag is set. Non-fatal; idempotent.
- tests: NasFileManager.deleteProjectFolder coverage — removes by number
  prefix, no-op when absent, false when not mounted (158 -> 161 tests).

Bump version to 2.0.4.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-06-08 08:51:57 +02:00
parent df83eb2091
commit 9ae69e09a3
4 changed files with 63 additions and 5 deletions

View File

@@ -310,7 +310,9 @@ export default async function ordersRoutes(
const id = parseId(request.params.id, reply);
if (id === null) return;
const result = await deleteOrder(id);
const body = request.body as Record<string, unknown> | undefined;
const deleteFiles = !!body?.delete_files;
const result = await deleteOrder(id, deleteFiles);
if ("error" in result) return error(reply, result.error!, result.status!);
await logAudit({