2026-07-24 22:13:25 -03:00
|
|
|
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)
|
|
|
|
|
{
|
2026-07-25 15:44:34 -03:00
|
|
|
var result = await _service.TriggerAsync(User, "admin", cancellationToken);
|
2026-07-24 22:13:25 -03:00
|
|
|
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) =>
|
2026-07-25 15:44:34 -03:00
|
|
|
Ok(await _service.GetStatusAsync(User, cancellationToken));
|
2026-07-24 22:13:25 -03:00
|
|
|
}
|
|
|
|
|
}
|