[MM-37557] Move error out of client4 response (#18101)

* Return an error seperately from Response

* Remove BuildErrorResponse

* Drop Response.Error from model/client4.go

* Migrate require.Nil checks

* Migrate require.NotNil checks

* More manual fixes

* Move error check out of CheckOKStatus and CheckCreatedStatus

* Move error check out of CheckForbiddenStatus

* Move error check out of CheckUnauthorizedStatus

* Move error check out of CheckNotFoundStatus

* Move error check out of CheckBadRequestStatus

* Move error check out of CheckNotImplementedStatus and CheckRequestEntityTooLargeStatus

* Move error check out of CheckInternalErrorStatus

* Move error check out of CheckServiceUnavailableStatus

* Remove error check from checkHTTPStatus

* Remove remaining references to Response.Error

* Check previously unchecked errors

* Manually fix compile and linter errors

* Return error in CreateWebSocket methods

* Return error instead of *AppError in DoApi methods

* Manually fix bad replacments

* Conistently return Response and error

* Use err instead of seperate bool return value to indicate success

* Reduce ussage of model.AppError in web/oauth_test.go

* Remove client4.Must

* Check error in buf.ReadFrom

* Fix failing tests
Этот коммит содержится в:
Ben Schumacher
2021-08-13 13:12:16 +02:00
коммит произвёл GitHub
родитель 96593580ae
Коммит a8ca5c423f
60 изменённых файлов: 9790 добавлений и 8706 удалений

Просмотреть файл

@@ -1709,8 +1709,8 @@ func TestPluginHTTPUpgradeWebSocket(t *testing.T) {
require.NotEmpty(t, pluginID)
reqURL := fmt.Sprintf("ws://localhost:%d/plugins/%s", th.Server.ListenAddr.Port, pluginID)
wsc, appErr := model.NewWebSocketClient(reqURL, "")
require.Nil(t, appErr)
wsc, err := model.NewWebSocketClient(reqURL, "")
require.NoError(t, err)
require.NotNil(t, wsc)
wsc.Listen()

Просмотреть файл

@@ -77,14 +77,14 @@ func CreateTestEnvironmentInTeam(a *app.App, c *request.Context, client *model.C
// Have every user join every channel
for _, user := range users {
for _, channel := range channels {
_, resp := client.LoginById(user.Id, UserPassword)
if resp.Error != nil {
return TeamEnvironment{}, resp.Error
_, _, err := client.LoginById(user.Id, UserPassword)
if err != nil {
return TeamEnvironment{}, err
}
_, resp = client.AddChannelMember(channel.Id, user.Id)
if resp.Error != nil {
return TeamEnvironment{}, resp.Error
_, _, err = client.AddChannelMember(channel.Id, user.Id)
if err != nil {
return TeamEnvironment{}, err
}
}
}
@@ -93,9 +93,9 @@ func CreateTestEnvironmentInTeam(a *app.App, c *request.Context, client *model.C
numImages := utils.RandIntFromRange(rangePosts) / 4
for j := 0; j < numPosts; j++ {
user := users[utils.RandIntFromRange(utils.Range{Begin: 0, End: len(users) - 1})]
_, resp := client.LoginById(user.Id, UserPassword)
if resp.Error != nil {
return TeamEnvironment{}, resp.Error
_, _, err := client.LoginById(user.Id, UserPassword)
if err != nil {
return TeamEnvironment{}, err
}
for i, channel := range channels {

Просмотреть файл

@@ -57,9 +57,9 @@ func (cfg *AutoTeamCreator) createRandomTeam() (*model.Team, error) {
Type: model.TeamOpen,
}
createdTeam, resp := cfg.client.CreateTeam(team)
if resp.Error != nil {
return nil, resp.Error
createdTeam, _, err := cfg.client.CreateTeam(team)
if err != nil {
return nil, err
}
return createdTeam, nil
}

Просмотреть файл

@@ -39,23 +39,23 @@ func NewAutoUserCreator(a *app.App, client *model.Client4, team *model.Team) *Au
}
// Basic test team and user so you always know one
func CreateBasicUser(a *app.App, client *model.Client4) *model.AppError {
found, _ := client.TeamExists(BTestTeamName, "")
func CreateBasicUser(a *app.App, client *model.Client4) error {
found, _, _ := client.TeamExists(BTestTeamName, "")
if found {
return nil
}
newteam := &model.Team{DisplayName: BTestTeamDisplayName, Name: BTestTeamName, Email: BTestTeamEmail, Type: BTestTeamType}
basicteam, resp := client.CreateTeam(newteam)
if resp.Error != nil {
return resp.Error
basicteam, _, err := client.CreateTeam(newteam)
if err != nil {
return err
}
newuser := &model.User{Email: BTestUserEmail, Nickname: BTestUserName, Password: BTestUserPassword}
ruser, resp := client.CreateUser(newuser)
if resp.Error != nil {
return resp.Error
ruser, _, err := client.CreateUser(newuser)
if err != nil {
return err
}
_, err := a.Srv().Store.User().VerifyEmail(ruser.Id, ruser.Email)
_, err = a.Srv().Store.User().VerifyEmail(ruser.Id, ruser.Email)
if err != nil {
return model.NewAppError("CreateBasicUser", "app.user.verify_email.app_error", nil, err.Error(), http.StatusInternalServerError)
}

Просмотреть файл

@@ -215,9 +215,9 @@ func (*LoadTestProvider) SetupCommand(a *app.App, c *request.Context, args *mode
if err := CreateBasicUser(a, client); err != nil {
return &model.CommandResponse{Text: "Failed to create testing environment", ResponseType: model.CommandResponseTypeEphemeral}, err
}
_, resp := client.Login(BTestUserEmail, BTestUserPassword)
if resp.Error != nil {
return &model.CommandResponse{Text: "Failed to create testing environment", ResponseType: model.CommandResponseTypeEphemeral}, resp.Error
_, _, err := client.Login(BTestUserEmail, BTestUserPassword)
if err != nil {
return &model.CommandResponse{Text: "Failed to create testing environment", ResponseType: model.CommandResponseTypeEphemeral}, err
}
environment, err := CreateTestEnvironmentWithTeams(
a,
@@ -443,18 +443,18 @@ func (*LoadTestProvider) PostCommand(a *app.App, args *model.CommandArgs, messag
}
client := model.NewAPIv4Client(args.SiteURL)
_, resp := client.LoginById(user.Id, passwd)
if resp.Error != nil {
return &model.CommandResponse{Text: "Failed to login a user", ResponseType: model.CommandResponseTypeEphemeral}, resp.Error
_, _, nErr := client.LoginById(user.Id, passwd)
if nErr != nil {
return &model.CommandResponse{Text: "Failed to login a user", ResponseType: model.CommandResponseTypeEphemeral}, nErr
}
post := &model.Post{
ChannelId: channel.Id,
Message: textMessage,
}
_, resp = client.CreatePost(post)
if resp.Error != nil {
return &model.CommandResponse{Text: "Failed to create a post", ResponseType: model.CommandResponseTypeEphemeral}, resp.Error
_, _, nErr = client.CreatePost(post)
if nErr != nil {
return &model.CommandResponse{Text: "Failed to create a post", ResponseType: model.CommandResponseTypeEphemeral}, nErr
}
return &model.CommandResponse{Text: "Added a post to " + channel.DisplayName, ResponseType: model.CommandResponseTypeEphemeral}, nil