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

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