* Dropped unused codekit config * Integrated dynamic and static bindata for public * Ignore public bindata * Add a general generate make task * Integrated flexible public assets into web command * Updated vendoring, added all missiong govendor deps * Made the linter happy with the bindata and dynamic code * Moved public bindata definition to modules directory * Ignoring the new bindata path now * Updated to the new public modules import path * Updated public bindata command and drop the new prefix
34 lines
722 B
Go
34 lines
722 B
Go
package etcd
|
|
|
|
import "fmt"
|
|
|
|
func (c *Client) CompareAndDelete(key string, prevValue string, prevIndex uint64) (*Response, error) {
|
|
raw, err := c.RawCompareAndDelete(key, prevValue, prevIndex)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return raw.Unmarshal()
|
|
}
|
|
|
|
func (c *Client) RawCompareAndDelete(key string, prevValue string, prevIndex uint64) (*RawResponse, error) {
|
|
if prevValue == "" && prevIndex == 0 {
|
|
return nil, fmt.Errorf("You must give either prevValue or prevIndex.")
|
|
}
|
|
|
|
options := Options{}
|
|
if prevValue != "" {
|
|
options["prevValue"] = prevValue
|
|
}
|
|
if prevIndex != 0 {
|
|
options["prevIndex"] = prevIndex
|
|
}
|
|
|
|
raw, err := c.delete(key, options)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return raw, err
|
|
}
|