github.com/altipla-consulting/ravendb-go-client@v0.1.3/get_subscription_state_command.go (about)

     1  package ravendb
     2  
     3  import (
     4  	"net/http"
     5  )
     6  
     7  var (
     8  	_ RavenCommand = &GetSubscriptionStateCommand{}
     9  )
    10  
    11  // GetSubscriptionStateCommand describes "get subscription state" command
    12  type GetSubscriptionStateCommand struct {
    13  	RavenCommandBase
    14  
    15  	subscriptionName string
    16  
    17  	Result *SubscriptionState
    18  }
    19  
    20  func newGetSubscriptionStateCommand(subscriptionName string) *GetSubscriptionStateCommand {
    21  	cmd := &GetSubscriptionStateCommand{
    22  		RavenCommandBase: NewRavenCommandBase(),
    23  
    24  		subscriptionName: subscriptionName,
    25  	}
    26  	cmd.IsReadRequest = true
    27  	return cmd
    28  }
    29  
    30  func (c *GetSubscriptionStateCommand) createRequest(node *ServerNode) (*http.Request, error) {
    31  	url := node.URL + "/databases/" + node.Database + "/subscriptions/state?name=" + urlUtilsEscapeDataString(c.subscriptionName)
    32  
    33  	return newHttpGet(url)
    34  }
    35  
    36  func (c *GetSubscriptionStateCommand) setResponse(response []byte, fromCache bool) error {
    37  	if len(response) == 0 {
    38  		return throwInvalidResponse()
    39  	}
    40  	return jsonUnmarshal(response, &c.Result)
    41  }