MCPcopy
hub / github.com/nats-io/nats.go / Delete

Method Delete

kv.go:752–793  ·  view source on GitHub ↗

Delete will place a delete marker and leave all revisions.

(key string, opts ...DeleteOpt)

Source from the content-addressed store, hash-verified

750
751// Delete will place a delete marker and leave all revisions.
752func (kv *kvs) Delete(key string, opts ...DeleteOpt) error {
753 if !keyValid(key) {
754 return ErrInvalidKey
755 }
756
757 var b strings.Builder
758 if kv.useJSPfx {
759 b.WriteString(kv.js.opts.pre)
760 }
761 if kv.putPre != _EMPTY_ {
762 b.WriteString(kv.putPre)
763 } else {
764 b.WriteString(kv.pre)
765 }
766 b.WriteString(key)
767
768 // DEL op marker. For watch functionality.
769 m := NewMsg(b.String())
770
771 var o deleteOpts
772 for _, opt := range opts {
773 if opt != nil {
774 if err := opt.configureDelete(&o); err != nil {
775 return err
776 }
777 }
778 }
779
780 if o.purge {
781 m.Header.Set(kvop, kvpurge)
782 m.Header.Set(MsgRollup, MsgRollupSubject)
783 } else {
784 m.Header.Set(kvop, kvdel)
785 }
786
787 if o.revision != 0 {
788 m.Header.Set(ExpectedLastSubjSeqHdr, strconv.FormatUint(o.revision, 10))
789 }
790
791 _, err := kv.js.PublishMsg(m)
792 return err
793}
794
795// Purge will remove the key and all revisions.
796func (kv *kvs) Purge(key string, opts ...DeleteOpt) error {

Callers 1

PurgeMethod · 0.95

Calls 6

NewMsgFunction · 0.85
keyValidFunction · 0.70
configureDeleteMethod · 0.65
SetMethod · 0.65
PublishMsgMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected