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 }