github.com/altipla-consulting/ravendb-go-client@v0.1.3/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  }