diff --git a/server/src/migrations/0.3.2-beta.ts b/server/src/migrations/0.3.2-beta.ts index b27d862..a5766d3 100644 --- a/server/src/migrations/0.3.2-beta.ts +++ b/server/src/migrations/0.3.2-beta.ts @@ -12,19 +12,25 @@ export async function convertPanelUrlToPanelId() { const panelUrlRegex = /^(.+)\/d\/(\w+)\/.+panelId=(\d+)/; const newPanelUrlRegex = /^(.+)\/dashboard\/(\w+).+panelId=(\d+)/; - const updatedAnalyticUnits = analyticUnits.map(analyticUnit => { - const parsedPanelUrl = analyticUnit.panelUrl.match(panelUrlRegex) || analyticUnit.panelUrl.match(newPanelUrlRegex); - const grafanaUrl = parsedPanelUrl[1]; - const dashboardId = parsedPanelUrl[2]; - const oldPanelId = parsedPanelUrl[3]; - const panelId = `${dashboardId}/${oldPanelId}`; + const updatedAnalyticUnits = analyticUnits + .map(analyticUnit => { + const parsedPanelUrl = analyticUnit.panelUrl.match(panelUrlRegex) || analyticUnit.panelUrl.match(newPanelUrlRegex); + if(parsedPanelUrl === null) { + console.log(`Cannot parse url: ${analyticUnit.panelUrl}`); + return null; + } + const grafanaUrl = parsedPanelUrl[1]; + const dashboardId = parsedPanelUrl[2]; + const oldPanelId = parsedPanelUrl[3]; + const panelId = `${dashboardId}/${oldPanelId}`; - return { - _id: analyticUnit._id, - grafanaUrl, - panelId - }; - }); + return { + _id: analyticUnit._id, + grafanaUrl, + panelId + }; + }) + .filter(analyticUnit => analyticUnit !== null); console.log(updatedAnalyticUnits); await updatedAnalyticUnits.forEach(analyticUnit => db.updateOne(analyticUnit._id, {