MM-16822 - Implement KVSetWithOptions (#11818)
* Add SetWithOptions * Avoid passing two structs to the functions * Rename ExpiryInSeconds -> ExpireInSeconds * Use t.Run for the tests * Fix build * Address feedback * Update log message * Update docs and use KVSetWithOptions in KVCompareAndSetJSON * Improve code style * Use struct instead of pointer to struct * Fix minimum server versions * Update documentation * Address feedback * Revert new implemention of kv helpers * Adress feedback
Этот коммит содержится в:
коммит произвёл
Ben Schumacher
родитель
812c40a307
Коммит
1db045bce3
@@ -3727,6 +3727,37 @@ func (s *apiRPCServer) KVCompareAndDelete(args *Z_KVCompareAndDeleteArgs, return
|
||||
return nil
|
||||
}
|
||||
|
||||
type Z_KVSetWithOptionsArgs struct {
|
||||
A string
|
||||
B interface{}
|
||||
C model.PluginKVSetOptions
|
||||
}
|
||||
|
||||
type Z_KVSetWithOptionsReturns struct {
|
||||
A bool
|
||||
B *model.AppError
|
||||
}
|
||||
|
||||
func (g *apiRPCClient) KVSetWithOptions(key string, newValue interface{}, options model.PluginKVSetOptions) (bool, *model.AppError) {
|
||||
_args := &Z_KVSetWithOptionsArgs{key, newValue, options}
|
||||
_returns := &Z_KVSetWithOptionsReturns{}
|
||||
if err := g.client.Call("Plugin.KVSetWithOptions", _args, _returns); err != nil {
|
||||
log.Printf("RPC call to KVSetWithOptions API failed: %s", err.Error())
|
||||
}
|
||||
return _returns.A, _returns.B
|
||||
}
|
||||
|
||||
func (s *apiRPCServer) KVSetWithOptions(args *Z_KVSetWithOptionsArgs, returns *Z_KVSetWithOptionsReturns) error {
|
||||
if hook, ok := s.impl.(interface {
|
||||
KVSetWithOptions(key string, newValue interface{}, options model.PluginKVSetOptions) (bool, *model.AppError)
|
||||
}); ok {
|
||||
returns.A, returns.B = hook.KVSetWithOptions(args.A, args.B, args.C)
|
||||
} else {
|
||||
return encodableError(fmt.Errorf("API KVSetWithOptions called but not implemented."))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type Z_KVSetWithExpiryArgs struct {
|
||||
A string
|
||||
B []byte
|
||||
|
||||
Ссылка в новой задаче
Block a user