Expose dynamic audio on the v2 schedule API
This commit is contained in:
@@ -509,6 +509,7 @@ components:
|
||||
endMinutes,
|
||||
overnight,
|
||||
durationMinutes,
|
||||
dynamicAudio,
|
||||
proclamationIds
|
||||
]
|
||||
properties:
|
||||
@@ -540,6 +541,11 @@ components:
|
||||
type: integer
|
||||
minimum: 1
|
||||
description: Block length in minutes. An overnight block counts the wrap past midnight as the next day.
|
||||
dynamicAudio:
|
||||
type: boolean
|
||||
description: |
|
||||
When true, dynamic audio is enabled for the block's duration, overriding any
|
||||
audio selections made on the device while the block is active.
|
||||
proclamationIds:
|
||||
type: array
|
||||
description: IDs of the selected Proclamations, in play order.
|
||||
|
||||
@@ -149,6 +149,7 @@ export type V2ScheduleBlock = {
|
||||
endMinutes: number;
|
||||
overnight: boolean;
|
||||
durationMinutes: number;
|
||||
dynamicAudio: boolean;
|
||||
proclamationIds: string[];
|
||||
};
|
||||
|
||||
@@ -162,7 +163,12 @@ export type V2Schedule = {
|
||||
* marks a range that crosses midnight (end clock time before start), and
|
||||
* `durationMinutes` counts the wrap as the next day. */
|
||||
export function serializeScheduleBlock(
|
||||
block: { id: string; startMinutes: number; endMinutes: number },
|
||||
block: {
|
||||
id: string;
|
||||
startMinutes: number;
|
||||
endMinutes: number;
|
||||
dynamicAudio?: boolean;
|
||||
},
|
||||
proclamationIds: string[]
|
||||
): V2ScheduleBlock {
|
||||
return {
|
||||
@@ -173,6 +179,7 @@ export function serializeScheduleBlock(
|
||||
endMinutes: block.endMinutes,
|
||||
overnight: isOvernight(block),
|
||||
durationMinutes: blockDuration(block),
|
||||
dynamicAudio: block.dynamicAudio === true,
|
||||
proclamationIds
|
||||
};
|
||||
}
|
||||
|
||||
@@ -99,6 +99,7 @@ describe('GET /api/v2/schedule success', () => {
|
||||
id: 'block-1',
|
||||
startMinutes: 21 * 60,
|
||||
endMinutes: 9 * 60,
|
||||
dynamicAudio: true,
|
||||
proclamations: [{ proclamation: { id: 'p1' } }, { proclamation: { id: 'p2' } }]
|
||||
}
|
||||
]);
|
||||
@@ -117,6 +118,7 @@ describe('GET /api/v2/schedule success', () => {
|
||||
endMinutes: 540,
|
||||
overnight: true,
|
||||
durationMinutes: 720,
|
||||
dynamicAudio: true,
|
||||
proclamationIds: ['p1', 'p2']
|
||||
}
|
||||
]
|
||||
@@ -148,6 +150,7 @@ describe('GET /api/v2/schedule success', () => {
|
||||
endMinutes: 60,
|
||||
overnight: false,
|
||||
durationMinutes: 60,
|
||||
dynamicAudio: false,
|
||||
proclamationIds: ['p1']
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user