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