MM-56083 Add PatchMultipleMembersNotifyProps plugin API (#25690)
* Add ChannelStore.UpdateMultipleMembersNotifyProps * Make UpdateMultipleMembersNotifyProps return updated values from the DB * Add UpdateChannelMembersNotifications plugin API * Extract i18n * Fix style * Make layers * Change to PatchMultipleMembersNotifyProps * Add limit to PatchChannelMembersNotifyProps * Add additional unit tests * Address feedback * Lowercase decodeJSON * Have PatchMultipleMembersNotifyProps update LastUpdateAt * Fix tests that relied on unreliable return order * Fix i18n
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
aafe7439af
Коммит
4d96c11314
@@ -4,7 +4,11 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -724,3 +728,24 @@ func NewTestId() string {
|
||||
func (th *TestHelper) NewPluginAPI(manifest *model.Manifest) plugin.API {
|
||||
return th.App.NewPluginAPI(th.Context, manifest)
|
||||
}
|
||||
|
||||
func decodeJSON[T any](o any, result *T) *T {
|
||||
var r io.Reader
|
||||
switch v := o.(type) {
|
||||
case string:
|
||||
r = strings.NewReader(v)
|
||||
case []byte:
|
||||
r = bytes.NewReader(v)
|
||||
case io.Reader:
|
||||
r = v
|
||||
default:
|
||||
panic(fmt.Sprintf("Unable to decode JSON from %T (%v)", v, v))
|
||||
}
|
||||
|
||||
err := json.NewDecoder(r).Decode(result)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user