mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 18:53:12 +00:00
33 lines
1.2 KiB
C#
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));
|
|
}
|
|
}
|