Skip to content

Commit 90365ba

Browse files
committed
chore: fix migration
1 parent 386044c commit 90365ba

File tree

1 file changed

+35
-10
lines changed

1 file changed

+35
-10
lines changed

meteor/server/migration/1_52_0.ts

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { DEFAULT_CORE_TRIGGER_IDS } from './upgrades/defaultSystemActionTriggers
1616
import { ICoreSystem } from '@sofie-automation/meteor-lib/dist/collections/CoreSystem'
1717
import { ICoreSystemSettings } from '@sofie-automation/shared-lib/dist/core/model/CoreSystemSettings'
1818
import { logger } from '../logging'
19-
import { literal, unprotectString } from '../lib/tempLib'
19+
import { assertNever, literal, unprotectString } from '../lib/tempLib'
2020

2121
// Release 52
2222

@@ -71,15 +71,27 @@ export const addSteps = addMigrationSteps('1.52.0', [
7171
const studios = await Studios.findFetchAsync({ routeSetsWithOverrides: { $exists: true } })
7272

7373
for (const studio of studios) {
74-
const routeSetsDefaults = studio.routeSetsWithOverrides.defaults as any as Record<
75-
string,
76-
StudioRouteSet
77-
>
74+
// .abPlayers in the defaults:
75+
const routeSetsDefaults = studio.routeSetsWithOverrides.defaults
7876
for (const key of Object.keys(routeSetsDefaults)) {
7977
if (!routeSetsDefaults[key].abPlayers) {
8078
return 'AB players must be added to routeSetsWithOverrides'
8179
}
8280
}
81+
// .abPlayers in the overrides:
82+
for (const override of studio.routeSetsWithOverrides.overrides) {
83+
if (override.op === 'set') {
84+
const value = override.value as StudioRouteSet
85+
86+
if (!value.abPlayers) {
87+
return 'AB players must be added to routeSetsWithOverrides'
88+
}
89+
} else if (override.op === 'delete') {
90+
// ignore this
91+
} else {
92+
assertNever(override)
93+
}
94+
}
8395
}
8496

8597
return false
@@ -88,16 +100,29 @@ export const addSteps = addMigrationSteps('1.52.0', [
88100
const studios = await Studios.findFetchAsync({ routeSetsWithOverrides: { $exists: true } })
89101

90102
for (const studio of studios) {
91-
const newRouteSetswithOverrides = studio.routeSetsWithOverrides
92-
for (const key of Object.keys(newRouteSetswithOverrides.defaults)) {
93-
if (!newRouteSetswithOverrides.defaults[key].abPlayers) {
94-
newRouteSetswithOverrides.defaults[key].abPlayers = []
103+
const newRouteSetsWithOverrides = studio.routeSetsWithOverrides
104+
105+
// .abPlayers in the defaults:
106+
const routeSetsDefaults = newRouteSetsWithOverrides.defaults
107+
for (const key of Object.keys(routeSetsDefaults)) {
108+
if (!routeSetsDefaults[key].abPlayers) {
109+
routeSetsDefaults[key].abPlayers = []
110+
}
111+
}
112+
// .abPlayers in the overrides:
113+
for (const override of newRouteSetsWithOverrides.overrides) {
114+
if (override.op === 'set') {
115+
const value = override.value as StudioRouteSet
116+
117+
if (!value.abPlayers) {
118+
value.abPlayers = []
119+
}
95120
}
96121
}
97122

98123
await Studios.updateAsync(studio._id, {
99124
$set: {
100-
routeSetsWithOverrides: newRouteSetswithOverrides,
125+
routeSetsWithOverrides: newRouteSetsWithOverrides,
101126
},
102127
})
103128
}

0 commit comments

Comments
 (0)