github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/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 }