moved diagnose to own controller, added advanced diagnose building, ui for advanced still missing

This commit is contained in:
mxritzdev
2025-05-13 17:22:47 +02:00
parent 0743bad93c
commit 609a0297d5
6 changed files with 155 additions and 35 deletions

View File

@@ -0,0 +1,44 @@
using Microsoft.AspNetCore.Mvc;
using MoonCore.Attributes;
using Moonlight.ApiServer.Services;
using Moonlight.Shared.Http.Requests.Admin.Sys;
using Moonlight.Shared.Http.Responses.Admin.Sys;
using Moonlight.Shared.Misc;
namespace Moonlight.ApiServer.Http.Controllers.Admin.Sys;
[ApiController]
[Route("api/admin/system/diagnose")]
public class DiagnoseController : Controller
{
private readonly DiagnoseService DiagnoseService;
public DiagnoseController(DiagnoseService diagnoseService)
{
DiagnoseService = diagnoseService;
}
[HttpPost]
[RequirePermission("admin.system.diagnose")]
public async Task<IActionResult> Diagnose([FromBody] string[]? requestedDiagnoseProviders = null)
{
var stream = new MemoryStream();
await DiagnoseService.GenerateDiagnose(stream, requestedDiagnoseProviders);
return File(stream, "application/zip", "diagnose.zip");
}
[HttpGet("available")]
[RequirePermission("admin.system.diagnose")]
public async Task<SystemAvailableDiagnoseProviderResponse> GetAvailable()
{
var availableProviders = await DiagnoseService.GetAvailable();
return new SystemAvailableDiagnoseProviderResponse()
{
AvailableProviders = availableProviders
};
}
}