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