shoc-backend/Api.SeaHavenIndustries/Controllers/WorkOrderReconciliationController.cs
2026-07-25 15:45:52 -03:00

33 lines
1.2 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SeaHaven.Services.Interfaces;
namespace Api.SeaHavenIndustries.Controllers
{
[ApiController]
[Authorize(Roles = "Admin")]
[Route("api/admin/work-order-reconciliation")]
public sealed class WorkOrderReconciliationController : ControllerBase
{
private readonly IWorkOrderReconciliationService _service;
public WorkOrderReconciliationController(IWorkOrderReconciliationService service)
{
_service = service;
}
[HttpPost]
public async Task<IActionResult> Trigger(CancellationToken cancellationToken)
{
var result = await _service.TriggerAsync(User, "admin", cancellationToken);
if (!result.Queued && result.RunId == Guid.Empty)
return StatusCode(StatusCodes.Status503ServiceUnavailable, new { error = "disabled" });
return Accepted(new { run_id = result.RunId, queued = result.Queued });
}
[HttpGet]
public async Task<IActionResult> Status(CancellationToken cancellationToken) =>
Ok(await _service.GetStatusAsync(User, cancellationToken));
}
}