4949
5050 // GetLastMsgForSubject retrieves the last raw stream message stored in
5151 // JetStream on a given subject subject.
52- GetLastMsgForSubject (ctx context.Context , subject string , opts ... GetLastForSubjectOpt ) (* RawStreamMsg , error )
52+ GetLastMsgForSubject (ctx context.Context , subject string ) (* RawStreamMsg , error )
5353
5454 // DeleteMsg deletes a message from a stream.
5555 // On the server, the message is marked as erased, but not overwritten.
@@ -221,9 +221,6 @@ type (
221221 // GetMsgOpt is a function setting options for [Stream.GetMsg]
222222 GetMsgOpt func (* apiMsgGetRequest ) error
223223
224- // GetLastForSubjectOpt is a function setting options for [Stream.GetLastMsgForSubject]
225- GetLastForSubjectOpt func (* apiMsgGetRequest ) error
226-
227224 apiMsgGetRequest struct {
228225 Seq uint64 `json:"seq,omitempty"`
229226 LastFor string `json:"last_by_subj,omitempty"`
@@ -522,35 +519,27 @@ func (s *stream) GetMsg(ctx context.Context, seq uint64, opts ...GetMsgOpt) (*Ra
522519
523520// GetLastMsgForSubject retrieves the last raw stream message stored in
524521// JetStream on a given subject subject.
525- func (s * stream ) GetLastMsgForSubject (ctx context.Context , subject string , opts ... GetLastForSubjectOpt ) (* RawStreamMsg , error ) {
526- req := & apiMsgGetRequest {LastFor : subject }
527- for _ , opt := range opts {
528- if err := opt (req ); err != nil {
529- return nil , err
530- }
531- }
532- return s .getMsg (ctx , req )
522+ func (s * stream ) GetLastMsgForSubject (ctx context.Context , subject string ) (* RawStreamMsg , error ) {
523+ return s .getMsg (ctx , & apiMsgGetRequest {LastFor : subject })
533524}
534525
535526func (s * stream ) getMsg (ctx context.Context , mreq * apiMsgGetRequest ) (* RawStreamMsg , error ) {
536527 ctx , cancel := s .js .wrapContextWithoutDeadline (ctx )
537528 if cancel != nil {
538529 defer cancel ()
539530 }
531+ req , err := json .Marshal (mreq )
532+ if err != nil {
533+ return nil , err
534+ }
540535
541536 var gmSubj string
542537
543538 // handle direct gets
544539 if s .info .Config .AllowDirect {
545- lastFor := mreq .LastFor
546- mreq .LastFor = ""
547- req , err := json .Marshal (mreq )
548- if err != nil {
549- return nil , err
550- }
551- if lastFor != "" {
552- gmSubj = fmt .Sprintf (apiDirectMsgGetLastBySubjectT , s .name , lastFor )
553- r , err := s .js .apiRequest (ctx , gmSubj , req )
540+ if mreq .LastFor != "" {
541+ gmSubj = fmt .Sprintf (apiDirectMsgGetLastBySubjectT , s .name , mreq .LastFor )
542+ r , err := s .js .apiRequest (ctx , gmSubj , nil )
554543 if err != nil {
555544 return nil , err
556545 }
@@ -563,10 +552,6 @@ func (s *stream) getMsg(ctx context.Context, mreq *apiMsgGetRequest) (*RawStream
563552 }
564553 return convertDirectGetMsgResponseToMsg (r .msg )
565554 }
566- req , err := json .Marshal (mreq )
567- if err != nil {
568- return nil , err
569- }
570555
571556 var resp apiMsgGetResponse
572557 dsSubj := fmt .Sprintf (apiMsgGetT , s .name )
0 commit comments