Add error if Consumer Durable and Name are not equal

This error will happen only if both Name and Durable are specified.

Signed-off-by: Tomasz Pietrek <tomasz@nats.io>
This commit is contained in:
Tomasz Pietrek
2022-09-14 15:29:53 +02:00
parent a41af2bdcb
commit dbf7636e15
4 changed files with 73 additions and 0 deletions

View File

@@ -50,6 +50,9 @@ const (
// JSConsumerConfigRequiredErr consumer config required
JSConsumerConfigRequiredErr ErrorIdentifier = 10078
// JSConsumerCreateDurableAndNameMismatch Consumer Durable and Name have to be equal if both are provided
JSConsumerCreateDurableAndNameMismatch ErrorIdentifier = 10132
// JSConsumerCreateErrF General consumer creation failure string ({err})
JSConsumerCreateErrF ErrorIdentifier = 10012
@@ -413,6 +416,7 @@ var (
JSClusterUnSupportFeatureErr: {Code: 503, ErrCode: 10036, Description: "not currently supported in clustered mode"},
JSConsumerBadDurableNameErr: {Code: 400, ErrCode: 10103, Description: "durable name can not contain '.', '*', '>'"},
JSConsumerConfigRequiredErr: {Code: 400, ErrCode: 10078, Description: "consumer config required"},
JSConsumerCreateDurableAndNameMismatch: {Code: 400, ErrCode: 10132, Description: "Consumer Durable and Name have to be equal if both are provided"},
JSConsumerCreateErrF: {Code: 500, ErrCode: 10012, Description: "{err}"},
JSConsumerCreateFilterSubjectMismatchErr: {Code: 400, ErrCode: 10131, Description: "Consumer create request did not match filtered subject from create subject"},
JSConsumerDeliverCycleErr: {Code: 400, ErrCode: 10081, Description: "consumer deliver subject forms a cycle"},
@@ -709,6 +713,16 @@ func NewJSConsumerConfigRequiredError(opts ...ErrorOption) *ApiError {
return ApiErrors[JSConsumerConfigRequiredErr]
}
// NewJSConsumerCreateDurableAndNameMismatchError creates a new JSConsumerCreateDurableAndNameMismatch error: "Consumer Durable and Name have to be equal if both are provided"
func NewJSConsumerCreateDurableAndNameMismatchError(opts ...ErrorOption) *ApiError {
eopts := parseOpts(opts)
if ae, ok := eopts.err.(*ApiError); ok {
return ae
}
return ApiErrors[JSConsumerCreateDurableAndNameMismatch]
}
// NewJSConsumerCreateError creates a new JSConsumerCreateErrF error: "{err}"
func NewJSConsumerCreateError(err error, opts ...ErrorOption) *ApiError {
eopts := parseOpts(opts)