feat: add jetstream consumer api lifecycle

This commit is contained in:
Joseph Doherty
2026-02-23 06:06:02 -05:00
parent 6825839191
commit 40b940b1fd
6 changed files with 175 additions and 5 deletions

View File

@@ -5,15 +5,17 @@ namespace NATS.Server.JetStream.Api;
public sealed class JetStreamApiRouter
{
private readonly StreamManager _streamManager;
private readonly ConsumerManager _consumerManager;
public JetStreamApiRouter()
: this(new StreamManager())
: this(new StreamManager(), new ConsumerManager())
{
}
public JetStreamApiRouter(StreamManager streamManager)
public JetStreamApiRouter(StreamManager streamManager, ConsumerManager consumerManager)
{
_streamManager = streamManager;
_consumerManager = consumerManager;
}
public JetStreamApiResponse Route(string subject, ReadOnlySpan<byte> payload)
@@ -24,6 +26,12 @@ public sealed class JetStreamApiRouter
if (subject.StartsWith("$JS.API.STREAM.INFO.", StringComparison.Ordinal))
return StreamApiHandlers.HandleInfo(subject, _streamManager);
if (subject.StartsWith("$JS.API.CONSUMER.CREATE.", StringComparison.Ordinal))
return ConsumerApiHandlers.HandleCreate(subject, payload, _consumerManager);
if (subject.StartsWith("$JS.API.CONSUMER.INFO.", StringComparison.Ordinal))
return ConsumerApiHandlers.HandleInfo(subject, _consumerManager);
return JetStreamApiResponse.NotFound(subject);
}
}