github.com/altipla-consulting/ravendb-go-client@v0.1.3/reset_index_operation.go (about)

     1  package ravendb
     2  
     3  import (
     4  	"net/http"
     5  )
     6  
     7  var _ IVoidMaintenanceOperation = &ResetIndexOperation{}
     8  
     9  type ResetIndexOperation struct {
    10  	indexName string
    11  
    12  	Command *ResetIndexCommand
    13  }
    14  
    15  func NewResetIndexOperation(indexName string) (*ResetIndexOperation, error) {
    16  	if indexName == "" {
    17  		return nil, newIllegalArgumentError("indexName cannot be empty")
    18  	}
    19  
    20  	return &ResetIndexOperation{
    21  		indexName: indexName,
    22  	}, nil
    23  }
    24  
    25  func (o *ResetIndexOperation) GetCommand(conventions *DocumentConventions) (RavenCommand, error) {
    26  	var err error
    27  	o.Command, err = NewResetIndexCommand(o.indexName)
    28  	if err != nil {
    29  		return nil, err
    30  	}
    31  	return o.Command, nil
    32  }
    33  
    34  var (
    35  	_ RavenCommand = &ResetIndexCommand{}
    36  )
    37  
    38  type ResetIndexCommand struct {
    39  	RavenCommandBase
    40  
    41  	indexName string
    42  }
    43  
    44  func NewResetIndexCommand(indexName string) (*ResetIndexCommand, error) {
    45  	if indexName == "" {
    46  		return nil, newIllegalArgumentError("indexName cannot be empty")
    47  	}
    48  	cmd := &ResetIndexCommand{
    49  		RavenCommandBase: NewRavenCommandBase(),
    50  
    51  		indexName: indexName,
    52  	}
    53  	cmd.ResponseType = RavenCommandResponseTypeEmpty
    54  	return cmd, nil
    55  }
    56  
    57  func (c *ResetIndexCommand) createRequest(node *ServerNode) (*http.Request, error) {
    58  	url := node.URL + "/databases/" + node.Database + "/indexes?name=" + urlUtilsEscapeDataString(c.indexName)
    59  
    60  	return newHttpReset(url)
    61  }