return context from scripted schedule api calls that modify the context (#2370)

This commit is contained in:
Jason Dove
2025-09-04 13:42:00 +00:00
committed by GitHub
parent 06332c8360
commit 704c1ec535
@@ -21,15 +21,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
return NotFound($"Active build engine not found for build {buildId}."); return NotFound($"Active build engine not found for build {buildId}.");
} }
try return GetContextInternal(engine);
{
var state = engine.GetState();
return Ok(new ContextResponseModel(state.CurrentTime, state.Start, state.Finish, state.IsDone));
}
catch (InvalidOperationException ex)
{
return BadRequest(ex.Message);
}
} }
[HttpPost("add_collection", Name = "AddCollection")] [HttpPost("add_collection", Name = "AddCollection")]
@@ -168,7 +160,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
} }
[HttpPost("add_all", Name = "AddAll")] [HttpPost("add_all", Name = "AddAll")]
public IActionResult AddAll([FromRoute] Guid buildId, [FromBody] AddAllRequestModel request) public ActionResult<ContextResponseModel> AddAll([FromRoute] Guid buildId, [FromBody] AddAllRequestModel request)
{ {
ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId);
if (engine == null) if (engine == null)
@@ -183,11 +175,11 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
} }
engine.AddAll(request.Content, maybeFillerKind, request.CustomTitle, request.DisableWatermarks); engine.AddAll(request.Content, maybeFillerKind, request.CustomTitle, request.DisableWatermarks);
return Ok(); return GetContextInternal(engine);
} }
[HttpPost("add_count", Name = "AddCount")] [HttpPost("add_count", Name = "AddCount")]
public IActionResult AddCount( public ActionResult<ContextResponseModel> AddCount(
[FromRoute] [FromRoute]
Guid buildId, Guid buildId,
[FromBody] [FromBody]
@@ -211,11 +203,15 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
maybeFillerKind, maybeFillerKind,
request.CustomTitle, request.CustomTitle,
request.DisableWatermarks); request.DisableWatermarks);
return Ok(); return GetContextInternal(engine);
} }
[HttpPost("add_duration", Name = "AddDuration")] [HttpPost("add_duration", Name = "AddDuration")]
public IActionResult AddDuration([FromRoute] Guid buildId, [FromBody] AddDurationRequestModel request) public ActionResult<ContextResponseModel> AddDuration(
[FromRoute]
Guid buildId,
[FromBody]
AddDurationRequestModel request)
{ {
ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId);
if (engine == null) if (engine == null)
@@ -240,11 +236,13 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
maybeFillerKind, maybeFillerKind,
request.CustomTitle, request.CustomTitle,
request.DisableWatermarks); request.DisableWatermarks);
return Ok(); return GetContextInternal(engine);
} }
[HttpPost("pad_to_next", Name = "PadToNext")] [HttpPost("pad_to_next", Name = "PadToNext")]
public IActionResult PadToNext([FromRoute] Guid buildId, [FromBody] PadToNextRequestModel request) public ActionResult<ContextResponseModel> PadToNext(
[FromRoute] Guid buildId,
[FromBody] PadToNextRequestModel request)
{ {
ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId);
if (engine == null) if (engine == null)
@@ -269,11 +267,13 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
maybeFillerKind, maybeFillerKind,
request.CustomTitle, request.CustomTitle,
request.DisableWatermarks); request.DisableWatermarks);
return Ok(); return GetContextInternal(engine);
} }
[HttpPost("pad_until", Name = "PadUntil")] [HttpPost("pad_until", Name = "PadUntil")]
public IActionResult PadUntil([FromRoute] Guid buildId, [FromBody] PadUntilRequestModel request) public ActionResult<ContextResponseModel> PadUntil(
[FromRoute] Guid buildId,
[FromBody] PadUntilRequestModel request)
{ {
ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId);
if (engine == null) if (engine == null)
@@ -299,7 +299,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
maybeFillerKind, maybeFillerKind,
request.CustomTitle, request.CustomTitle,
request.DisableWatermarks); request.DisableWatermarks);
return Ok(); return GetContextInternal(engine);
} }
[HttpGet("start_epg_group", Name = "StartEpgGroup")] [HttpGet("start_epg_group", Name = "StartEpgGroup")]
@@ -417,7 +417,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
} }
[HttpGet("wait_until", Name = "WaitUntil")] [HttpGet("wait_until", Name = "WaitUntil")]
public IActionResult WaitUntil( public ActionResult<ContextResponseModel> WaitUntil(
[FromRoute] [FromRoute]
Guid buildId, Guid buildId,
[FromBody] [FromBody]
@@ -434,6 +434,19 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
engine.WaitUntil(waitUntil, request.Tomorrow, request.RewindOnReset); engine.WaitUntil(waitUntil, request.Tomorrow, request.RewindOnReset);
} }
return Ok(); return GetContextInternal(engine);
}
private ActionResult<ContextResponseModel> GetContextInternal(ISchedulingEngine engine)
{
try
{
var state = engine.GetState();
return Ok(new ContextResponseModel(state.CurrentTime, state.Start, state.Finish, state.IsDone));
}
catch (InvalidOperationException ex)
{
return BadRequest(ex.Message);
}
} }
} }