github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/serverwide/operations/operation_get_build_number.go (about)

     1  package operations
     2  
     3  import (
     4  	"encoding/json"
     5  	"github.com/ravendb/ravendb-go-client"
     6  	"net/http"
     7  )
     8  
     9  type OperationGetBuildNumber struct {
    10  	BuildVersion   int    `json:"BuildVersion"`
    11  	ProductVersion string `json:"ProductVersion"`
    12  	CommitHash     string `json:"CommitHash"`
    13  	FullVersion    string `json:"FullVersion"`
    14  }
    15  
    16  func (operation *OperationGetBuildNumber) GetCommand(conventions *ravendb.DocumentConventions) (ravendb.RavenCommand, error) {
    17  	return &getBuildNumber{
    18  		RavenCommandBase: ravendb.RavenCommandBase{
    19  			ResponseType: ravendb.RavenCommandResponseTypeObject,
    20  		},
    21  		parent: operation,
    22  	}, nil
    23  }
    24  
    25  type getBuildNumber struct {
    26  	ravendb.RavenCommandBase
    27  	parent *OperationGetBuildNumber
    28  }
    29  
    30  func (c *getBuildNumber) CreateRequest(node *ravendb.ServerNode) (*http.Request, error) {
    31  	url := node.URL + "/build/version"
    32  	return http.NewRequest(http.MethodGet, url, nil)
    33  }
    34  
    35  func (c *getBuildNumber) SetResponse(response []byte, fromCache bool) error {
    36  	return json.Unmarshal(response, c.parent)
    37  }