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 }