Skip to content

Commit 752a30a

Browse files
committed
fix: review comments
1 parent e839b97 commit 752a30a

File tree

16 files changed

+53
-107
lines changed

16 files changed

+53
-107
lines changed

meteor/server/api/userActions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1125,7 +1125,7 @@ class ServerUserActionAPI
11251125
async () => {
11261126
check(studioId, String)
11271127
check(routeSetId, String)
1128-
check(state, Boolean)
1128+
check(state, Match.OneOf('toggle', Boolean))
11291129

11301130
const access = await StudioContentWriteAccess.routeSet(this, studioId)
11311131
return ServerPlayoutAPI.switchRouteSet(access, routeSetId, state)

meteor/server/migration/1_42_0.ts

Lines changed: 0 additions & 51 deletions
This file was deleted.

meteor/server/migration/X_X_X.ts

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ export const addSteps = addMigrationSteps(CURRENT_SYSTEM_VERSION, [
1919
id: `convert routesets to ObjectWithOverrides`,
2020
canBeRunAutomatically: true,
2121
validate: async () => {
22-
const studios = await Studios.findFetchAsync({ routeSets: { $exists: true } })
22+
const studios = await Studios.findFetchAsync({
23+
routeSets: { $exists: true },
24+
routeSetsWithOverrides: { $exists: false },
25+
})
2326

2427
for (const studio of studios) {
2528
//@ts-expect-error routeSets is not typed as ObjectWithOverrides
@@ -31,15 +34,16 @@ export const addSteps = addMigrationSteps(CURRENT_SYSTEM_VERSION, [
3134
return false
3235
},
3336
migrate: async () => {
34-
const studios = await Studios.findFetchAsync({ routeSets: { $exists: true } })
37+
const studios = await Studios.findFetchAsync({
38+
routeSets: { $exists: true },
39+
routeSetsWithOverrides: { $exists: false },
40+
})
3541

3642
for (const studio of studios) {
37-
//@ts-expect-error routeSets is not typed as ObjectWithOverrides
38-
if (!studio.routeSets) continue
39-
//@ts-expect-error routeSets is not typed as ObjectWithOverrides
40-
const oldRouteSets = studio.routeSets as any as Record<string, StudioRouteSet>
43+
//@ts-expect-error routeSets is typed as Record<string, StudioRouteSet>
44+
const oldRouteSets = studio.routeSets
4145

42-
const newRouteSets = convertObjectIntoOverrides(oldRouteSets)
46+
const newRouteSets = convertObjectIntoOverrides<StudioRouteSet>(oldRouteSets || {})
4347

4448
await Studios.updateAsync(studio._id, {
4549
$set: {
@@ -56,7 +60,10 @@ export const addSteps = addMigrationSteps(CURRENT_SYSTEM_VERSION, [
5660
id: `convert routeSetExclusivityGroups to ObjectWithOverrides`,
5761
canBeRunAutomatically: true,
5862
validate: async () => {
59-
const studios = await Studios.findFetchAsync({ routeSetExclusivityGroups: { $exists: true } })
63+
const studios = await Studios.findFetchAsync({
64+
routeSetExclusivityGroups: { $exists: true },
65+
routeSetExclusivityGroupsWithOverrides: { $exists: false },
66+
})
6067

6168
for (const studio of studios) {
6269
//@ts-expect-error routeSetExclusivityGroups is not typed as ObjectWithOverrides
@@ -68,18 +75,18 @@ export const addSteps = addMigrationSteps(CURRENT_SYSTEM_VERSION, [
6875
return false
6976
},
7077
migrate: async () => {
71-
const studios = await Studios.findFetchAsync({ routeSetExclusivityGroups: { $exists: true } })
78+
const studios = await Studios.findFetchAsync({
79+
routeSetExclusivityGroups: { $exists: true },
80+
routeSetExclusivityGroupsWithOverrides: { $exists: false },
81+
})
7282

7383
for (const studio of studios) {
74-
//@ts-expect-error routeSetExclusivityGroups is not typed as ObjectWithOverrides
75-
if (!studio.routeSetExclusivityGroups) return
76-
//@ts-expect-error routeSetExclusivityGroups is not typed as ObjectWithOverrides
77-
const oldRouteSetExclusivityGroups = studio.routeSetExclusivityGroups as any as Record<
78-
string,
79-
StudioRouteSetExclusivityGroup
80-
>
84+
//@ts-expect-error routeSets is typed as Record<string, StudioRouteSetExclusivityGroup>
85+
const oldRouteSetExclusivityGroups = studio.routeSetExclusivityGroups
8186

82-
const newRouteSetExclusivityGroups = convertObjectIntoOverrides(oldRouteSetExclusivityGroups)
87+
const newRouteSetExclusivityGroups = convertObjectIntoOverrides<StudioRouteSetExclusivityGroup>(
88+
oldRouteSetExclusivityGroups || {}
89+
)
8390

8491
await Studios.updateAsync(studio._id, {
8592
$set: {

meteor/server/migration/migrations.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ addSteps1_40_0()
1212
import { addSteps as addSteps1_41_0 } from './1_41_0'
1313
addSteps1_41_0()
1414

15-
import { addSteps as addSteps1_42_0 } from './1_42_0'
16-
addSteps1_42_0()
15+
// Note: There where no migrations for Release 42
1716

1817
import { addSteps as addSteps1_44_0 } from './1_44_0'
1918
addSteps1_44_0()

packages/blueprints-integration/src/context/adlibActionContext.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export interface IActionExecutionContext
3939
queuePart(part: IBlueprintPart, pieces: IBlueprintPiece[]): Promise<IBlueprintPartInstance>
4040

4141
/** Switch RouteSet State*/
42-
switchRouteSet(routeSetId: string, state: boolean): Promise<void>
42+
switchRouteSet(routeSetId: string, state: boolean | 'toggle'): Promise<void>
4343
/** Misc actions */
4444
// updateAction(newManifest: Pick<IBlueprintAdLibActionManifest, 'description' | 'payload'>): void // only updates itself. to allow for the next one to do something different
4545
// executePeripheralDeviceAction(deviceId: string, functionName: string, args: any[]): Promise<any>

packages/blueprints-integration/src/triggers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ export interface ISwitchRouteSetAction extends ITriggeredActionBase {
198198
action: PlayoutActions.switchRouteSet
199199
filterChain: (IRundownPlaylistFilterLink | IGUIContextFilterLink)[]
200200
routeSetId: string
201-
state: boolean
201+
state: boolean | 'toggle'
202202
}
203203

204204
export interface ITakeAction extends ITriggeredActionBase {

packages/job-worker/src/blueprints/context/adlibActions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ export class ActionExecutionContext extends ShowStyleUserContext implements IAct
184184
partInstance.blockTakeUntil(time)
185185
}
186186

187-
async switchRouteSet(routeSetId: string, state: boolean): Promise<void> {
187+
async switchRouteSet(routeSetId: string, state: boolean | 'toggle'): Promise<void> {
188188
this._playoutModel.switchRouteSet(routeSetId, state)
189189
}
190190

packages/job-worker/src/playout/model/PlayoutModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ export interface PlayoutModel extends PlayoutModelReadonly, StudioPlayoutModelBa
196196
* @param routeSetId
197197
* @param isActive
198198
*/
199-
switchRouteSet(routeSetId: string, isActive: boolean): void
199+
switchRouteSet(routeSetId: string, isActive: boolean | 'toggle'): void
200200

201201
/**
202202
* Clear the currently selected PartInstances, so that nothing is selected for playback

packages/job-worker/src/playout/model/implementation/PlayoutModelImpl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ export class PlayoutModelImpl extends PlayoutModelReadonlyImpl implements Playou
480480
return partInstance
481481
}
482482

483-
switchRouteSet(routeSetId: string, isActive: boolean): void {
483+
switchRouteSet(routeSetId: string, isActive: boolean | 'toggle'): void {
484484
this.#baselineHelper.updateRouteSetActive(routeSetId, isActive)
485485
}
486486

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

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import { BlueprintMapping, BlueprintMappings, JSONBlobParse, TSR } from '@sofie-automation/blueprints-integration'
1+
import {
2+
BlueprintMapping,
3+
BlueprintMappings,
4+
JSONBlobParse,
5+
StudioRouteBehavior,
6+
TSR,
7+
} from '@sofie-automation/blueprints-integration'
28
import {
39
MappingsExt,
410
StudioIngestDevice,
@@ -70,23 +76,23 @@ export async function handleBlueprintUpgradeForStudio(context: JobContext, _data
7076
])
7177
)
7278
const routeSets = Object.fromEntries(
73-
Object.entries<unknown>(result.routeSets ?? {}).map((dev) => [
79+
Object.entries<Partial<StudioRouteSet>>(result.routeSets ?? {}).map((dev) => [
7480
dev[0],
7581
literal<Complete<StudioRouteSet>>({
76-
name: (dev[1] as StudioRouteSet).name ?? '',
77-
active: (dev[1] as StudioRouteSet).active ?? false,
78-
defaultActive: (dev[1] as StudioRouteSet).defaultActive ?? false,
79-
behavior: (dev[1] as StudioRouteSet).behavior ?? {},
80-
exclusivityGroup: (dev[1] as StudioRouteSet).exclusivityGroup ?? undefined,
81-
routes: (dev[1] as StudioRouteSet).routes,
82+
name: dev[1].name ?? '',
83+
active: dev[1].active ?? false,
84+
defaultActive: dev[1].defaultActive ?? false,
85+
behavior: dev[1].behavior ?? StudioRouteBehavior.TOGGLE,
86+
exclusivityGroup: dev[1].exclusivityGroup ?? undefined,
87+
routes: dev[1].routes ?? [],
8288
}),
8389
])
8490
)
8591
const routeSetExclusivityGroups = Object.fromEntries(
86-
Object.entries<unknown>(result.routeSetExclusivityGroups ?? {}).map((dev) => [
92+
Object.entries<Partial<StudioRouteSetExclusivityGroup>>(result.routeSetExclusivityGroups ?? {}).map((dev) => [
8793
dev[0],
8894
literal<Complete<StudioRouteSetExclusivityGroup>>({
89-
name: (dev[1] as StudioRouteSetExclusivityGroup).name,
95+
name: dev[1].name ?? '',
9096
}),
9197
])
9298
)

0 commit comments

Comments
 (0)