Fix error message when sharing already shared channel; also make idempotent (#25854)
* fix appError/error assignment bug * make ShareChannel plugin API idempotent --------- Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
@@ -15,23 +15,21 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
errNotFound = errors.New("not found")
|
||||
errNotFound = errors.New("not found")
|
||||
ErrChannelAlreadyShared = errors.New("channel is already shared")
|
||||
)
|
||||
|
||||
func (a *App) checkChannelNotShared(c request.CTX, channelId string) error {
|
||||
// check that channel exists.
|
||||
if _, err := a.GetChannel(c, channelId); err != nil {
|
||||
return fmt.Errorf("cannot share this channel: %w", err)
|
||||
if _, appErr := a.GetChannel(c, channelId); appErr != nil {
|
||||
return fmt.Errorf("cannot find channel: %w", appErr)
|
||||
}
|
||||
|
||||
// Check channel is not already shared.
|
||||
if _, err := a.GetSharedChannel(channelId); err == nil {
|
||||
var errNotFound *store.ErrNotFound
|
||||
if errors.As(err, &errNotFound) {
|
||||
return fmt.Errorf("channel is already shared: %w", err)
|
||||
}
|
||||
return fmt.Errorf("cannot find channel: %w", err)
|
||||
return ErrChannelAlreadyShared
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user