mirror of https://github.com/dapr/go-sdk.git
etag output on get state
This commit is contained in:
parent
0f19d63ca0
commit
fee04fad27
|
|
@ -9,6 +9,7 @@ import (
|
|||
)
|
||||
|
||||
// InvokeBinding invokes specific operation on the configured Dapr binding
|
||||
// This method covers both the input, output, and bi-directional bindings
|
||||
func (c *Client) InvokeBinding(ctx context.Context, name, op string, in []byte, min map[string]string) (out []byte, mout map[string]string, err error) {
|
||||
if name == "" {
|
||||
return nil, nil, errors.New("nil topic")
|
||||
|
|
|
|||
|
|
@ -248,12 +248,12 @@ func (c *Client) SaveStateJSON(ctx context.Context, store, key string, in interf
|
|||
// *** Get State ***
|
||||
|
||||
// GetStateWithConsistency retreaves state from specific store using provided request
|
||||
func (c *Client) GetStateWithConsistency(ctx context.Context, store, key string, sc StateConsistency) (out []byte, err error) {
|
||||
func (c *Client) GetStateWithConsistency(ctx context.Context, store, key string, sc StateConsistency) (out []byte, etag string, err error) {
|
||||
if store == "" {
|
||||
return nil, errors.New("nil store")
|
||||
return nil, "", errors.New("nil store")
|
||||
}
|
||||
if key == "" {
|
||||
return nil, errors.New("nil key")
|
||||
return nil, "", errors.New("nil key")
|
||||
}
|
||||
|
||||
req := &pb.GetStateRequest{
|
||||
|
|
@ -264,14 +264,14 @@ func (c *Client) GetStateWithConsistency(ctx context.Context, store, key string,
|
|||
|
||||
result, err := c.protoClient.GetState(authContext(ctx), req)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "error getting state")
|
||||
return nil, "", errors.Wrap(err, "error getting state")
|
||||
}
|
||||
|
||||
return result.Data, nil
|
||||
return result.Data, result.Etag, nil
|
||||
}
|
||||
|
||||
// GetState retreaves state from specific store using default consistency option
|
||||
func (c *Client) GetState(ctx context.Context, store, key string) (out []byte, err error) {
|
||||
func (c *Client) GetState(ctx context.Context, store, key string) (out []byte, etag string, err error) {
|
||||
return c.GetStateWithConsistency(ctx, store, key, StateConsistencyStrong)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@ func main() {
|
|||
logger.Println("data saved")
|
||||
|
||||
// get state for key key1
|
||||
dataOut, err := client.GetState(ctx, "statestore", "key1")
|
||||
dataOut, etag, err := client.GetState(ctx, "statestore", "key1")
|
||||
if err != nil {
|
||||
logger.Panic(err)
|
||||
}
|
||||
logger.Printf("data out: %s", string(dataOut))
|
||||
logger.Printf("data out [etag:%s]: %s", etag, string(dataOut))
|
||||
|
||||
// delete state for key key1
|
||||
err = client.DeleteState(ctx, "statestore", "key1")
|
||||
|
|
|
|||
Loading…
Reference in New Issue