From 192758e3df43dcd54d280fe6ff088d5197ec9c8b Mon Sep 17 00:00:00 2001 From: MathMan05 Date: Tue, 20 Jan 2026 11:33:08 -0600 Subject: [PATCH] fix validations --- src/api/routes/reporting/index.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/api/routes/reporting/index.ts b/src/api/routes/reporting/index.ts index f061cdfab..dbbd0004a 100644 --- a/src/api/routes/reporting/index.ts +++ b/src/api/routes/reporting/index.ts @@ -108,7 +108,8 @@ for (const type of Object.values(ReportMenuTypeNames)) { }); } - if (body.breadcrumbs != menuData.breadcrumbs) { + if (body.breadcrumbs.find((_) => !(_ in menuData.nodes))) { + console.log(menuData); throw FieldErrors({ breadcrumbs: { message: `Invalid report menu breadcrumbs.`, @@ -119,8 +120,9 @@ for (const type of Object.values(ReportMenuTypeNames)) { const validateBreadcrumbs = (currentNode: unknown, breadcrumbs: number[]): boolean => { // navigate via node.children ([name, id][]) according to breadcrumbs - let node: { children: [string, number][] } = currentNode as { children: [string, number][] }; - for (const crumb of breadcrumbs) { + let node = currentNode as { children: [string, number][] }; + for (let i = 1; i < breadcrumbs.length; i++) { + const crumb = breadcrumbs[i]; if (!node || !node.children || !Array.isArray(node.children)) return false; const nextNode = node.children.find((child: [string, number]) => child[1] === crumb); if (!nextNode) return false;