@@ -16,7 +16,7 @@ import { DEFAULT_CORE_TRIGGER_IDS } from './upgrades/defaultSystemActionTriggers
16
16
import { ICoreSystem } from '@sofie-automation/meteor-lib/dist/collections/CoreSystem'
17
17
import { ICoreSystemSettings } from '@sofie-automation/shared-lib/dist/core/model/CoreSystemSettings'
18
18
import { logger } from '../logging'
19
- import { literal , unprotectString } from '../lib/tempLib'
19
+ import { assertNever , literal , unprotectString } from '../lib/tempLib'
20
20
21
21
// Release 52
22
22
@@ -71,15 +71,27 @@ export const addSteps = addMigrationSteps('1.52.0', [
71
71
const studios = await Studios . findFetchAsync ( { routeSetsWithOverrides : { $exists : true } } )
72
72
73
73
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
78
76
for ( const key of Object . keys ( routeSetsDefaults ) ) {
79
77
if ( ! routeSetsDefaults [ key ] . abPlayers ) {
80
78
return 'AB players must be added to routeSetsWithOverrides'
81
79
}
82
80
}
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
+ }
83
95
}
84
96
85
97
return false
@@ -88,16 +100,29 @@ export const addSteps = addMigrationSteps('1.52.0', [
88
100
const studios = await Studios . findFetchAsync ( { routeSetsWithOverrides : { $exists : true } } )
89
101
90
102
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
+ }
95
120
}
96
121
}
97
122
98
123
await Studios . updateAsync ( studio . _id , {
99
124
$set : {
100
- routeSetsWithOverrides : newRouteSetswithOverrides ,
125
+ routeSetsWithOverrides : newRouteSetsWithOverrides ,
101
126
} ,
102
127
} )
103
128
}
0 commit comments