Migrating Team.SaveMember/SaveMultipleMembers into errors (#14924)
* Migrating Team.SaveMember/SaveMultipleMembers into errors * Removing copy/paste comments * Fixing another small thing * Fixing tests * Addressing PR review comments * Fixing some tests * Fixing golangci-lint * Fixing linter * Regenerating store layers * Fix lint error after merge * Other lint error fixed Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
1b141678fe
Коммит
19173ea6ff
@@ -754,9 +754,22 @@ func (a *App) importUserTeams(user *model.User, data *[]UserTeamImportData) *mod
|
||||
|
||||
newMembers := []*model.TeamMember{}
|
||||
if len(newTeamMembers) > 0 {
|
||||
newMembers, err = a.Srv().Store.Team().SaveMultipleMembers(newTeamMembers, *a.Config().TeamSettings.MaxUsersPerTeam)
|
||||
if err != nil {
|
||||
return err
|
||||
var nErr error
|
||||
newMembers, nErr = a.Srv().Store.Team().SaveMultipleMembers(newTeamMembers, *a.Config().TeamSettings.MaxUsersPerTeam)
|
||||
if nErr != nil {
|
||||
var appErr *model.AppError
|
||||
var conflictErr *store.ErrConflict
|
||||
var limitExeededErr *store.ErrLimitExceeded
|
||||
switch {
|
||||
case errors.As(nErr, &appErr): // in case we haven't converted to plain error.
|
||||
return appErr
|
||||
case errors.As(nErr, &conflictErr):
|
||||
return model.NewAppError("BulkImport", "app.import.import_user_teams.save_members.conflict.app_error", nil, nErr.Error(), http.StatusBadRequest)
|
||||
case errors.As(nErr, &limitExeededErr):
|
||||
return model.NewAppError("BulkImport", "app.import.import_user_teams.save_members.max_accounts.app_error", nil, nErr.Error(), http.StatusBadRequest)
|
||||
default: // last fallback in case it doesn't map to an existing app error.
|
||||
return model.NewAppError("BulkImport", "app.import.import_user_teams.save_members.error", nil, nErr.Error(), http.StatusInternalServerError)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,8 +4,12 @@
|
||||
package slashcommands
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
|
||||
"github.com/mattermost/mattermost-server/v5/app"
|
||||
"github.com/mattermost/mattermost-server/v5/model"
|
||||
"github.com/mattermost/mattermost-server/v5/store"
|
||||
"github.com/mattermost/mattermost-server/v5/utils"
|
||||
)
|
||||
|
||||
@@ -54,8 +58,20 @@ func CreateBasicUser(a *app.App, client *model.Client4) *model.AppError {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err = a.Srv().Store.Team().SaveMember(&model.TeamMember{TeamId: basicteam.Id, UserId: ruser.Id}, *a.Config().TeamSettings.MaxUsersPerTeam); err != nil {
|
||||
return err
|
||||
if _, nErr := a.Srv().Store.Team().SaveMember(&model.TeamMember{TeamId: basicteam.Id, UserId: ruser.Id}, *a.Config().TeamSettings.MaxUsersPerTeam); nErr != nil {
|
||||
var appErr *model.AppError
|
||||
var conflictErr *store.ErrConflict
|
||||
var limitExceededErr *store.ErrLimitExceeded
|
||||
switch {
|
||||
case errors.As(nErr, &appErr): // in case we haven't converted to plain error.
|
||||
return appErr
|
||||
case errors.As(nErr, &conflictErr):
|
||||
return model.NewAppError("CreateBasicUser", "app.create_basic_user.save_member.conflict.app_error", nil, nErr.Error(), http.StatusBadRequest)
|
||||
case errors.As(nErr, &limitExceededErr):
|
||||
return model.NewAppError("CreateBasicUser", "app.create_basic_user.save_member.max_accounts.app_error", nil, nErr.Error(), http.StatusBadRequest)
|
||||
default: // last fallback in case it doesn't map to an existing app error.
|
||||
return model.NewAppError("CreateBasicUser", "app.create_basic_user.save_member.app_error", nil, nErr.Error(), http.StatusInternalServerError)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
19
app/team.go
19
app/team.go
@@ -591,10 +591,21 @@ func (a *App) joinUserToTeam(team *model.Team, user *model.User) (*model.TeamMem
|
||||
rtm, err := a.Srv().Store.Team().GetMember(team.Id, user.Id)
|
||||
if err != nil {
|
||||
// Membership appears to be missing. Lets try to add.
|
||||
var tmr *model.TeamMember
|
||||
tmr, err = a.Srv().Store.Team().SaveMember(tm, *a.Config().TeamSettings.MaxUsersPerTeam)
|
||||
if err != nil {
|
||||
return nil, false, err
|
||||
tmr, nErr := a.Srv().Store.Team().SaveMember(tm, *a.Config().TeamSettings.MaxUsersPerTeam)
|
||||
if nErr != nil {
|
||||
var appErr *model.AppError
|
||||
var conflictErr *store.ErrConflict
|
||||
var limitExeededErr *store.ErrLimitExceeded
|
||||
switch {
|
||||
case errors.As(nErr, &appErr): // in case we haven't converted to plain error.
|
||||
return nil, false, appErr
|
||||
case errors.As(nErr, &conflictErr):
|
||||
return nil, false, model.NewAppError("joinUserToTeam", "app.team.join_user_to_team.save_member.conflict.app_error", nil, nErr.Error(), http.StatusBadRequest)
|
||||
case errors.As(nErr, &limitExeededErr):
|
||||
return nil, false, model.NewAppError("joinUserToTeam", "app.team.join_user_to_team.save_member.max_accounts.app_error", nil, nErr.Error(), http.StatusBadRequest)
|
||||
default: // last fallback in case it doesn't map to an existing app error.
|
||||
return nil, false, model.NewAppError("joinUserToTeam", "app.team.join_user_to_team.save_member.app_error", nil, nErr.Error(), http.StatusInternalServerError)
|
||||
}
|
||||
}
|
||||
return tmr, false, nil
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user