github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/more_like_this_scope.go (about)

     1  package ravendb
     2  
     3  type moreLikeThisScope struct {
     4  	token             *moreLikeThisToken
     5  	addQueryParameter func(interface{}) string
     6  	onDispose         func()
     7  }
     8  
     9  func newMoreLikeThisScope(token *moreLikeThisToken, addQueryParameter func(interface{}) string, onDispose func()) *moreLikeThisScope {
    10  	return &moreLikeThisScope{
    11  		token:             token,
    12  		addQueryParameter: addQueryParameter,
    13  		onDispose:         onDispose,
    14  	}
    15  }
    16  
    17  func (s *moreLikeThisScope) Close() {
    18  	if s.onDispose != nil {
    19  		s.onDispose()
    20  	}
    21  }
    22  
    23  func (s *moreLikeThisScope) withOptions(options *MoreLikeThisOptions) {
    24  	if options == nil {
    25  		return
    26  	}
    27  
    28  	// force using *non* entity serializer here:
    29  	optionsAsJson := valueToTree(options)
    30  	s.token.optionsParameterName = s.addQueryParameter(optionsAsJson)
    31  }
    32  
    33  func (s *moreLikeThisScope) withDocument(document string) {
    34  	s.token.documentParameterName = s.addQueryParameter(document)
    35  }