feat: add jetstream stream lifecycle api

This commit is contained in:
Joseph Doherty
2026-02-23 06:02:07 -05:00
parent 788f4254b0
commit 5f530de2e4
5 changed files with 221 additions and 20 deletions

View File

@@ -1,7 +1,29 @@
using NATS.Server.JetStream.Api.Handlers;
namespace NATS.Server.JetStream.Api;
public sealed class JetStreamApiRouter
{
private readonly StreamManager _streamManager;
public JetStreamApiRouter()
: this(new StreamManager())
{
}
public JetStreamApiRouter(StreamManager streamManager)
{
_streamManager = streamManager;
}
public JetStreamApiResponse Route(string subject, ReadOnlySpan<byte> payload)
=> JetStreamApiResponse.NotFound(subject);
{
if (subject.StartsWith("$JS.API.STREAM.CREATE.", StringComparison.Ordinal))
return StreamApiHandlers.HandleCreate(subject, payload, _streamManager);
if (subject.StartsWith("$JS.API.STREAM.INFO.", StringComparison.Ordinal))
return StreamApiHandlers.HandleInfo(subject, _streamManager);
return JetStreamApiResponse.NotFound(subject);
}
}