Add admin endpoint to delete bundle backtest requests and implement related UI functionality + Add job resilient
This commit is contained in:
@@ -228,5 +228,40 @@ public class AdminController : BaseController
|
||||
|
||||
return Ok(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes a bundle backtest request by ID for admin users.
|
||||
/// Also deletes all related backtests associated with this bundle request.
|
||||
/// This endpoint does not require user ownership - admins can delete any bundle.
|
||||
/// </summary>
|
||||
/// <param name="id">The ID of the bundle backtest request to delete.</param>
|
||||
/// <returns>An ActionResult indicating the outcome of the operation.</returns>
|
||||
[HttpDelete]
|
||||
[Route("BundleBacktestRequests/{id}")]
|
||||
public async Task<ActionResult> DeleteBundleBacktestRequest(string id)
|
||||
{
|
||||
if (!await IsUserAdmin())
|
||||
{
|
||||
_logger.LogWarning("Non-admin user attempted to delete bundle backtest request");
|
||||
return StatusCode(403, new { error = "Only admin users can delete bundle backtest requests" });
|
||||
}
|
||||
|
||||
if (!Guid.TryParse(id, out var requestId))
|
||||
{
|
||||
return BadRequest("Invalid bundle request ID format. Must be a valid GUID.");
|
||||
}
|
||||
|
||||
// First, delete the bundle request
|
||||
await _backtester.DeleteBundleBacktestRequestByIdAsync(requestId);
|
||||
|
||||
// Then, delete all related backtests
|
||||
var backtestsDeleted = await _backtester.DeleteBacktestsByRequestIdAsync(requestId);
|
||||
|
||||
return Ok(new
|
||||
{
|
||||
BundleRequestDeleted = true,
|
||||
RelatedBacktestsDeleted = backtestsDeleted
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user