mirror of
https://github.com/9ParsonsB/Pulsar.git
synced 2025-07-01 16:33:43 -04:00
API & WebSocket now working
Can Read Status File & Broadcast contents via websocket
This commit is contained in:
@ -1,12 +1,32 @@
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
|
||||
namespace Pulsar.Features.Status;
|
||||
|
||||
[ApiController]
|
||||
[Route("api/status")]
|
||||
public class StatusController : Controller
|
||||
public class StatusController(IOptions<PulsarConfiguration> pulsarOptions, IHubContext<EventsHub, IEventsHub> hub) : ControllerBase
|
||||
{
|
||||
[HttpGet]
|
||||
public IActionResult Get()
|
||||
public async Task<IActionResult> Get()
|
||||
{
|
||||
return Ok();
|
||||
// TODO: put in service
|
||||
var journalDir = pulsarOptions.Value.JournalDirectory;
|
||||
var dir = new DirectoryInfo(journalDir);
|
||||
|
||||
if (!dir.Exists)
|
||||
return Problem("Journal directory does not exist.");
|
||||
|
||||
var files = dir.GetFiles();
|
||||
|
||||
var statusFile = files.FirstOrDefault(f =>
|
||||
string.Equals(f.Name, "status.json", StringComparison.InvariantCultureIgnoreCase));
|
||||
|
||||
if (statusFile == null)
|
||||
return Problem("Status file not found.");
|
||||
|
||||
await using var file = System.IO.File.Open(statusFile.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||
var status = await JsonSerializer.DeserializeAsync<Observatory.Framework.Files.Status>(file);
|
||||
await hub.Clients.All.StatusUpdated(status);
|
||||
return Ok(status);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user