fix validations
1 files changed, 5 insertions, 3 deletions
diff --git a/src/api/routes/reporting/index.ts b/src/api/routes/reporting/index.ts
index f061cdfa..dbbd0004 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;
|