MM-16821 - Add a KVCompareAndDelete to the plugin API (#11804)
* Implement KVCompareAndDelete and KVCompareAndDeleteJSON * Add tests for KVCompareAndDelete * Update minimum server version * Handle nil value on CompareAndSet so that it deletes it * Fix comments * Tweaks from PR comments * Go back to deleted, err
Этот коммит содержится в:
коммит произвёл
Jesse Hallam
родитель
f8ad9f3b8f
Коммит
11b0a20d7d
@@ -3521,6 +3521,36 @@ func (s *apiRPCServer) KVCompareAndSet(args *Z_KVCompareAndSetArgs, returns *Z_K
|
||||
return nil
|
||||
}
|
||||
|
||||
type Z_KVCompareAndDeleteArgs struct {
|
||||
A string
|
||||
B []byte
|
||||
}
|
||||
|
||||
type Z_KVCompareAndDeleteReturns struct {
|
||||
A bool
|
||||
B *model.AppError
|
||||
}
|
||||
|
||||
func (g *apiRPCClient) KVCompareAndDelete(key string, oldValue []byte) (bool, *model.AppError) {
|
||||
_args := &Z_KVCompareAndDeleteArgs{key, oldValue}
|
||||
_returns := &Z_KVCompareAndDeleteReturns{}
|
||||
if err := g.client.Call("Plugin.KVCompareAndDelete", _args, _returns); err != nil {
|
||||
log.Printf("RPC call to KVCompareAndDelete API failed: %s", err.Error())
|
||||
}
|
||||
return _returns.A, _returns.B
|
||||
}
|
||||
|
||||
func (s *apiRPCServer) KVCompareAndDelete(args *Z_KVCompareAndDeleteArgs, returns *Z_KVCompareAndDeleteReturns) error {
|
||||
if hook, ok := s.impl.(interface {
|
||||
KVCompareAndDelete(key string, oldValue []byte) (bool, *model.AppError)
|
||||
}); ok {
|
||||
returns.A, returns.B = hook.KVCompareAndDelete(args.A, args.B)
|
||||
} else {
|
||||
return encodableError(fmt.Errorf("API KVCompareAndDelete called but not implemented."))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type Z_KVSetWithExpiryArgs struct {
|
||||
A string
|
||||
B []byte
|
||||
|
||||
Ссылка в новой задаче
Block a user