mirror of
https://github.com/bitwarden/server
synced 2025-12-13 06:43:45 +00:00
37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using Bit.Billing.Jobs;
|
|
using Bit.Core.Utilities;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Bit.Billing.Controllers;
|
|
|
|
[Route("jobs")]
|
|
[SelfHosted(NotSelfHostedOnly = true)]
|
|
[RequireLowerEnvironment]
|
|
public class JobsController(
|
|
JobsHostedService jobsHostedService) : Controller
|
|
{
|
|
[HttpPost("run/{jobName}")]
|
|
public async Task<IActionResult> RunJobAsync(string jobName)
|
|
{
|
|
if (jobName == nameof(ReconcileAdditionalStorageJob))
|
|
{
|
|
await jobsHostedService.RunJobAdHocAsync<ReconcileAdditionalStorageJob>();
|
|
return Ok(new { message = $"Job {jobName} scheduled successfully" });
|
|
}
|
|
|
|
return BadRequest(new { error = $"Unknown job name: {jobName}" });
|
|
}
|
|
|
|
[HttpPost("stop/{jobName}")]
|
|
public async Task<IActionResult> StopJobAsync(string jobName)
|
|
{
|
|
if (jobName == nameof(ReconcileAdditionalStorageJob))
|
|
{
|
|
await jobsHostedService.InterruptAdHocJobAsync<ReconcileAdditionalStorageJob>();
|
|
return Ok(new { message = $"Job {jobName} queued for cancellation" });
|
|
}
|
|
|
|
return BadRequest(new { error = $"Unknown job name: {jobName}" });
|
|
}
|
|
}
|