diff --git a/EnvelopeGenerator.ServiceHost/Controllers/WorkerController.cs b/EnvelopeGenerator.ServiceHost/Controllers/WorkerController.cs index c3b97eb9..ad69c0b3 100644 --- a/EnvelopeGenerator.ServiceHost/Controllers/WorkerController.cs +++ b/EnvelopeGenerator.ServiceHost/Controllers/WorkerController.cs @@ -1,44 +1,21 @@ -using Microsoft.AspNetCore.Mvc; +using EnvelopeGenerator.ServiceHost.Jobs; +using Microsoft.AspNetCore.Mvc; namespace EnvelopeGenerator.ServiceHost.Controllers; [Route("api/[controller]")] [ApiController] -public class WorkerController(IEnumerable hostedServices, ILogger logger) : ControllerBase +public class WorkerController(JobStateManager jobStateManager) : ControllerBase { - private Worker? Worker => hostedServices.OfType().FirstOrDefault(); + private readonly JobStateManager _jobStateManager = jobStateManager; - [HttpPost("stop")] - public async Task Stop(CancellationToken cancel) + [HttpGet(nameof(FinalizeDocumentJob))] + public IActionResult GetStateOfFinalizeDocumentJob() => Ok(_jobStateManager.GetState()); + + [HttpPost(nameof(FinalizeDocumentJob))] + public IActionResult SetStateOfFinalizeDocumentJob([FromQuery] State state) { - if (Worker is null) - return NotFound(); - - logger.LogInformation("Stopping Worker via API request."); - await Worker.StopAsync(cancel); - return Ok(); - } - - [HttpPost("start")] - public async Task Start(CancellationToken cancel) - { - if (Worker is null) - return NotFound(); - - logger.LogInformation("Starting Worker via API request."); - await Worker.StartAsync(cancel); - return Ok(); - } - - [HttpPost("restart")] - public async Task Restart(CancellationToken cancel) - { - if (Worker is null) - return NotFound(); - - logger.LogInformation("Restarting Worker via API request."); - await Worker.StopAsync(cancel); - await Worker.StartAsync(cancel); + _jobStateManager.SetState(state); return Ok(); } } \ No newline at end of file