Skip to content

Commit 3fd22ef

Browse files
authored
Merge pull request Sofie-Automation#1281 from nrkno/fix/snapshot-restore
Fix: Restore snapshot id's arent set properly
2 parents d2c4ecb + c42e4cb commit 3fd22ef

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

packages/job-worker/src/playout/snapshot.ts

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -242,12 +242,14 @@ export async function handleRestorePlaylistSnapshot(
242242

243243
partIdMap.set(oldId, part._id)
244244
}
245+
245246
const partInstanceOldRundownIdMap = new Map<PartInstanceId, RundownId>()
246247
const partInstanceIdMap = new Map<PartInstanceId, PartInstanceId>()
247248
for (const partInstance of snapshot.partInstances) {
248249
const oldId = partInstance._id
249250
partInstance._id = getRandomId()
250251
partInstanceIdMap.set(oldId, partInstance._id)
252+
251253
partInstance.part._id = partIdMap.get(partInstance.part._id) || getRandomId()
252254
partInstanceOldRundownIdMap.set(oldId, partInstance.rundownId)
253255
}
@@ -279,7 +281,6 @@ export async function handleRestorePlaylistSnapshot(
279281
...snapshot.baselineAdLibActions,
280282
]) {
281283
const oldId = adlib._id
282-
if (adlib.partId) adlib.partId = partIdMap.get(adlib.partId)
283284
adlib._id = getRandomId()
284285
pieceIdMap.set(oldId, adlib._id)
285286
}
@@ -367,7 +368,7 @@ export async function handleRestorePlaylistSnapshot(
367368
piece?: unknown
368369
}
369370
>(objs: undefined | T[], updateId: boolean): T[] {
370-
const updateIds = (obj: T) => {
371+
const updateIds = (obj: T, updateOwnId: boolean) => {
371372
if (obj.rundownId) {
372373
obj.rundownId = getNewRundownId(obj.rundownId)
373374
}
@@ -382,20 +383,20 @@ export async function handleRestorePlaylistSnapshot(
382383
obj.partInstanceId = partInstanceIdMap.get(obj.partInstanceId) || getRandomId()
383384
}
384385

385-
if (updateId) {
386+
if (updateOwnId) {
386387
obj._id = getRandomId()
387388
}
388389

389390
if (obj.part) {
390-
updateIds(obj.part as any)
391+
updateIds(obj.part as any, false)
391392
}
392393
if (obj.piece) {
393-
updateIds(obj.piece as any)
394+
updateIds(obj.piece as any, false)
394395
}
395396

396397
return obj
397398
}
398-
return (objs || []).map((obj) => updateIds(obj))
399+
return (objs || []).map((obj) => updateIds(obj, updateId))
399400
}
400401

401402
await Promise.all([
@@ -417,13 +418,13 @@ export async function handleRestorePlaylistSnapshot(
417418
context,
418419
context.directCollections.RundownBaselineAdLibPieces,
419420
{ rundownId: { $in: rundownIds } },
420-
updateItemIds(snapshot.baselineAdlibs, true)
421+
updateItemIds(snapshot.baselineAdlibs, false)
421422
),
422423
saveIntoDb(
423424
context,
424425
context.directCollections.RundownBaselineAdLibActions,
425426
{ rundownId: { $in: rundownIds } },
426-
updateItemIds(snapshot.baselineAdLibActions, true)
427+
updateItemIds(snapshot.baselineAdLibActions, false)
427428
),
428429
saveIntoDb(
429430
context,
@@ -459,13 +460,13 @@ export async function handleRestorePlaylistSnapshot(
459460
context,
460461
context.directCollections.AdLibPieces,
461462
{ rundownId: { $in: rundownIds } },
462-
updateItemIds(snapshot.adLibPieces, true)
463+
updateItemIds(snapshot.adLibPieces, false)
463464
),
464465
saveIntoDb(
465466
context,
466467
context.directCollections.AdLibActions,
467468
{ rundownId: { $in: rundownIds } },
468-
updateItemIds(snapshot.adLibActions, true)
469+
updateItemIds(snapshot.adLibActions, false)
469470
),
470471
saveIntoDb(
471472
context,
@@ -477,13 +478,13 @@ export async function handleRestorePlaylistSnapshot(
477478
context,
478479
context.directCollections.ExpectedPlayoutItems,
479480
{ rundownId: { $in: rundownIds } },
480-
updateItemIds(snapshot.expectedPlayoutItems || [], false)
481+
updateItemIds(snapshot.expectedPlayoutItems || [], true)
481482
),
482483
saveIntoDb(
483484
context,
484485
context.directCollections.ExpectedPackages,
485486
{ rundownId: { $in: rundownIds } },
486-
updateItemIds(snapshot.expectedPackages || [], false)
487+
snapshot.expectedPackages || []
487488
),
488489
])
489490

0 commit comments

Comments
 (0)