diff --git a/.golangci.yml b/.golangci.yml index 0504e4b479..71c041aa53 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -48,9 +48,8 @@ issues: path: ".*_test.go|store/storetest" - linters: - # ignore golint error for a lot of packages for now - golint - path: "api4|app|cmd|einterface|enterprise|jobs|migrations|mlog|model|testlib|services|store|utils|web|wsapi|plugin/plugintest/api.go|plugin/api.go|plugin/context.go|plugin/client.go|plugin/client_rpc.go|plugin/client_rpc_generated.go|plugin/api_timer_layer_generated.go|plugin/hooks_timer_layer_generated|plugin/environment.go|plugin/health_check.go|plugin/hooks.go|plugin/supervisor.go|plugin/valid.go" + text: "should have|should be|should replace|stutters|underscore|ALL_CAPS|annoying|error strings should not be capitalized" - linters: - misspell diff --git a/api4/apitestlib.go b/api4/apitestlib.go index de18603758..c609723349 100644 --- a/api4/apitestlib.go +++ b/api4/apitestlib.go @@ -1141,15 +1141,13 @@ func (th *TestHelper) SetupChannelScheme() *model.Scheme { } func (th *TestHelper) SetupScheme(scope string) *model.Scheme { - scheme := model.Scheme{ + scheme, err := th.App.CreateScheme(&model.Scheme{ Name: model.NewId(), DisplayName: model.NewId(), Scope: scope, - } - - if scheme, err := th.App.CreateScheme(&scheme); err == nil { - return scheme - } else { + }) + if err != nil { panic(err) } + return scheme } diff --git a/api4/team_test.go b/api4/team_test.go index cf5a9dd9fb..cff4849f16 100644 --- a/api4/team_test.go +++ b/api4/team_test.go @@ -631,10 +631,9 @@ func TestUpdateTeamPrivacy(t *testing.T) { if test.errChecker != nil { test.errChecker(t, resp) return - } else { - CheckNoError(t, resp) - CheckOKStatus(t, resp) } + CheckNoError(t, resp) + CheckOKStatus(t, resp) require.Equal(t, test.wantType, team.Type) require.Equal(t, test.wantOpenInvite, team.AllowOpenInvite) if test.wantInviteIdChanged { diff --git a/app/emoji.go b/app/emoji.go index a968e236c9..52e5de9621 100644 --- a/app/emoji.go +++ b/app/emoji.go @@ -281,16 +281,16 @@ func (a *App) GetEmojiStaticUrl(emojiName string) (string, *model.AppError) { return path.Join(subPath, "/static/emoji", id+".png"), nil } - if emoji, err := a.Srv().Store.Emoji().GetByName(emojiName, true); err == nil { + emoji, err := a.Srv().Store.Emoji().GetByName(emojiName, true) + if err == nil { return path.Join(subPath, "/api/v4/emoji", emoji.Id, "image"), nil - } else { - var nfErr *store.ErrNotFound - switch { - case errors.As(err, &nfErr): - return "", model.NewAppError("GetEmojiStaticUrl", "app.emoji.get_by_name.no_result", nil, err.Error(), http.StatusNotFound) - default: - return "", model.NewAppError("GetEmojiStaticUrl", "app.emoji.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError) - } + } + var nfErr *store.ErrNotFound + switch { + case errors.As(err, &nfErr): + return "", model.NewAppError("GetEmojiStaticUrl", "app.emoji.get_by_name.no_result", nil, err.Error(), http.StatusNotFound) + default: + return "", model.NewAppError("GetEmojiStaticUrl", "app.emoji.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError) } } diff --git a/app/helper_test.go b/app/helper_test.go index b229e719eb..fb2ec7a716 100644 --- a/app/helper_test.go +++ b/app/helper_test.go @@ -629,31 +629,27 @@ func (th *TestHelper) CheckChannelsCount(t *testing.T, expected int64) { } func (th *TestHelper) SetupTeamScheme() *model.Scheme { - scheme := model.Scheme{ + scheme, err := th.App.CreateScheme(&model.Scheme{ Name: model.NewId(), DisplayName: model.NewId(), Scope: model.SCHEME_SCOPE_TEAM, - } - - if scheme, err := th.App.CreateScheme(&scheme); err == nil { - return scheme - } else { + }) + if err != nil { panic(err) } + return scheme } func (th *TestHelper) SetupChannelScheme() *model.Scheme { - scheme := model.Scheme{ + scheme, err := th.App.CreateScheme(&model.Scheme{ Name: model.NewId(), DisplayName: model.NewId(), Scope: model.SCHEME_SCOPE_CHANNEL, - } - - if scheme, err := th.App.CreateScheme(&scheme); err == nil { - return scheme - } else { + }) + if err != nil { panic(err) } + return scheme } func (th *TestHelper) SetupPluginAPI() *PluginAPI { diff --git a/app/integration_action.go b/app/integration_action.go index 7b71f5d172..035c40430c 100644 --- a/app/integration_action.go +++ b/app/integration_action.go @@ -238,13 +238,12 @@ func (a *App) DoPostActionWithCookie(postId, actionId, userId, selectedOption st return "", appErr } return "", nil - } else { - resp, appErr = a.DoActionRequest(upstreamURL, upstreamRequest.ToJson()) - if appErr != nil { - return "", appErr - } - defer resp.Body.Close() } + resp, appErr = a.DoActionRequest(upstreamURL, upstreamRequest.ToJson()) + if appErr != nil { + return "", appErr + } + defer resp.Body.Close() var response model.PostActionIntegrationResponse if err := json.NewDecoder(resp.Body).Decode(&response); err != nil { diff --git a/app/plugin_api.go b/app/plugin_api.go index 5198ecb71c..7be60b03f8 100644 --- a/app/plugin_api.go +++ b/app/plugin_api.go @@ -50,16 +50,16 @@ func (api *PluginAPI) LoadPluginConfiguration(dest interface{}) error { finalConfig[strings.ToLower(setting)] = value } - if pluginSettingsJsonBytes, err := json.Marshal(finalConfig); err != nil { + pluginSettingsJsonBytes, err := json.Marshal(finalConfig) + if err != nil { api.logger.Error("Error marshaling config for plugin", mlog.Err(err)) return nil - } else { - err := json.Unmarshal(pluginSettingsJsonBytes, dest) - if err != nil { - api.logger.Error("Error unmarshaling config for plugin", mlog.Err(err)) - } - return nil } + err = json.Unmarshal(pluginSettingsJsonBytes, dest) + if err != nil { + api.logger.Error("Error unmarshaling config for plugin", mlog.Err(err)) + } + return nil } func (api *PluginAPI) RegisterCommand(command *model.Command) error { diff --git a/app/post_metadata.go b/app/post_metadata.go index 99714d48f8..7604ee64a1 100644 --- a/app/post_metadata.go +++ b/app/post_metadata.go @@ -534,9 +534,8 @@ func (a *App) parseLinkMetadata(requestURL string, body io.Reader, contentType s // one of these required fields exists before returning the OpenGraph data if og.Title != "" || og.Type != "" || og.URL != "" { return og, nil, nil - } else { - return nil, nil, nil } + return nil, nil, nil } else { // Not an image or web page with OpenGraph information return nil, nil, nil diff --git a/app/slashcommands/command_invite.go b/app/slashcommands/command_invite.go index 23056ef8e0..a668f643ae 100644 --- a/app/slashcommands/command_invite.go +++ b/app/slashcommands/command_invite.go @@ -113,14 +113,13 @@ func (*InviteProvider) DoCommand(a *app.App, args *model.CommandArgs, message st }), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL, } - } else { - // User doing the inviting is *not* a member of the channel. - return &model.CommandResponse{ - Text: args.T("api.command_invite.private_channel.app_error", map[string]interface{}{ - "Channel": channelToJoin.Name, - }), - ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL, - } + } + // User doing the inviting is *not* a member of the channel. + return &model.CommandResponse{ + Text: args.T("api.command_invite.private_channel.app_error", map[string]interface{}{ + "Channel": channelToJoin.Name, + }), + ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL, } } default: diff --git a/app/slashcommands/command_msg.go b/app/slashcommands/command_msg.go index fd02abb61b..6221513e75 100644 --- a/app/slashcommands/command_msg.go +++ b/app/slashcommands/command_msg.go @@ -85,9 +85,8 @@ func (*msgProvider) DoCommand(a *app.App, args *model.CommandArgs, message strin if directChannel, err = a.GetOrCreateDirectChannel(args.UserId, userProfile.Id); err != nil { mlog.Error(err.Error()) return &model.CommandResponse{Text: args.T("api.command_msg.dm_fail.app_error"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} - } else { - targetChannelId = directChannel.Id } + targetChannelId = directChannel.Id } else { mlog.Error(channelErr.Error()) return &model.CommandResponse{Text: args.T("api.command_msg.dm_fail.app_error"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} diff --git a/app/slashcommands/command_mute.go b/app/slashcommands/command_mute.go index 787164dabf..92a275040c 100644 --- a/app/slashcommands/command_mute.go +++ b/app/slashcommands/command_mute.go @@ -70,14 +70,12 @@ func (*MuteProvider) DoCommand(a *app.App, args *model.CommandArgs, message stri if channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP { if channelMember.NotifyProps[model.MARK_UNREAD_NOTIFY_PROP] == model.CHANNEL_NOTIFY_MENTION { return &model.CommandResponse{Text: args.T("api.command_mute.success_mute_direct_msg"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} - } else { - return &model.CommandResponse{Text: args.T("api.command_mute.success_unmute_direct_msg"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} } + return &model.CommandResponse{Text: args.T("api.command_mute.success_unmute_direct_msg"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} } if channelMember.NotifyProps[model.MARK_UNREAD_NOTIFY_PROP] == model.CHANNEL_NOTIFY_MENTION { return &model.CommandResponse{Text: args.T("api.command_mute.success_mute", map[string]interface{}{"Channel": channel.DisplayName}), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} - } else { - return &model.CommandResponse{Text: args.T("api.command_mute.success_unmute", map[string]interface{}{"Channel": channel.DisplayName}), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} } + return &model.CommandResponse{Text: args.T("api.command_mute.success_unmute", map[string]interface{}{"Channel": channel.DisplayName}), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} } diff --git a/app/webhook.go b/app/webhook.go index 56e966aa03..0eaa5f9128 100644 --- a/app/webhook.go +++ b/app/webhook.go @@ -468,17 +468,16 @@ func (a *App) CreateOutgoingWebhook(hook *model.OutgoingWebhook) (*model.Outgoin return nil, model.NewAppError("CreateOutgoingWebhook", "api.webhook.create_outgoing.triggers.app_error", nil, "", http.StatusBadRequest) } - if allHooks, err := a.Srv().Store.Webhook().GetOutgoingByTeam(hook.TeamId, -1, -1); err != nil { + allHooks, err := a.Srv().Store.Webhook().GetOutgoingByTeam(hook.TeamId, -1, -1) + if err != nil { return nil, model.NewAppError("CreateOutgoingWebhook", "app.webhooks.get_outgoing_by_team.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { + } + for _, existingOutHook := range allHooks { + urlIntersect := utils.StringArrayIntersection(existingOutHook.CallbackURLs, hook.CallbackURLs) + triggerIntersect := utils.StringArrayIntersection(existingOutHook.TriggerWords, hook.TriggerWords) - for _, existingOutHook := range allHooks { - urlIntersect := utils.StringArrayIntersection(existingOutHook.CallbackURLs, hook.CallbackURLs) - triggerIntersect := utils.StringArrayIntersection(existingOutHook.TriggerWords, hook.TriggerWords) - - if existingOutHook.ChannelId == hook.ChannelId && len(urlIntersect) != 0 && len(triggerIntersect) != 0 { - return nil, model.NewAppError("CreateOutgoingWebhook", "api.webhook.create_outgoing.intersect.app_error", nil, "", http.StatusInternalServerError) - } + if existingOutHook.ChannelId == hook.ChannelId && len(urlIntersect) != 0 && len(triggerIntersect) != 0 { + return nil, model.NewAppError("CreateOutgoingWebhook", "api.webhook.create_outgoing.intersect.app_error", nil, "", http.StatusInternalServerError) } } @@ -667,11 +666,11 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq webhookType := req.Type var hook *model.IncomingWebhook - if result := <-hchan; result.NErr != nil { + result := <-hchan + if result.NErr != nil { return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.invalid.app_error", nil, result.NErr.Error(), http.StatusBadRequest) - } else { - hook = result.Data.(*model.IncomingWebhook) } + hook = result.Data.(*model.IncomingWebhook) uchan := make(chan store.StoreResult, 1) go func() { @@ -699,15 +698,15 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq if len(channelName) != 0 { if channelName[0] == '@' { - if result, err := a.Srv().Store.User().GetByUsername(channelName[1:]); err != nil { - return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.user.app_error", nil, err.Error(), http.StatusBadRequest) - } else { - if ch, err := a.GetOrCreateDirectChannel(hook.UserId, result.Id); err != nil { - return err - } else { - channel = ch - } + result, nErr := a.Srv().Store.User().GetByUsername(channelName[1:]) + if nErr != nil { + return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.user.app_error", nil, nErr.Error(), http.StatusBadRequest) } + ch, err := a.GetOrCreateDirectChannel(hook.UserId, result.Id) + if err != nil { + return err + } + channel = ch } else if channelName[0] == '#' { cchan = make(chan store.StoreResult, 1) go func() { @@ -738,18 +737,17 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq } if channel == nil { - result := <-cchan - if result.NErr != nil { + result2 := <-cchan + if result2.NErr != nil { var nfErr *store.ErrNotFound switch { - case errors.As(result.NErr, &nfErr): + case errors.As(result2.NErr, &nfErr): return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.channel.app_error", nil, nfErr.Error(), http.StatusNotFound) default: - return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.channel.app_error", nil, result.NErr.Error(), http.StatusInternalServerError) + return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.channel.app_error", nil, result2.NErr.Error(), http.StatusInternalServerError) } - } else { - channel = result.Data.(*model.Channel) } + channel = result2.Data.(*model.Channel) } if hook.ChannelLocked && hook.ChannelId != channel.Id { @@ -757,11 +755,11 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq } var user *model.User - if result := <-uchan; result.NErr != nil { + result = <-uchan + if result.NErr != nil { return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.user.app_error", nil, result.NErr.Error(), http.StatusForbidden) - } else { - user = result.Data.(*model.User) } + user = result.Data.(*model.User) if a.Srv().License() != nil && *a.Config().TeamSettings.ExperimentalTownSquareIsReadOnly && channel.Name == model.DEFAULT_CHANNEL && !a.RolesGrantPermission(user.GetRoles(), model.PERMISSION_MANAGE_SYSTEM.Id) { diff --git a/cmd/mattermost/commands/channel.go b/cmd/mattermost/commands/channel.go index 5ea6a205c4..cac9715b67 100644 --- a/cmd/mattermost/commands/channel.go +++ b/cmd/mattermost/commands/channel.go @@ -435,28 +435,28 @@ func moveChannel(a *app.App, team *model.Team, channel *model.Channel, user *mod auditRec.AddMeta("team", team) a.LogAuditRec(auditRec, nil) - if incomingWebhooks, err := a.GetIncomingWebhooksForTeamPage(oldTeamId, 0, 10000000); err != nil { + incomingWebhooks, err := a.GetIncomingWebhooksForTeamPage(oldTeamId, 0, 10000000) + if err != nil { return err - } else { - for _, webhook := range incomingWebhooks { - if webhook.ChannelId == channel.Id { - webhook.TeamId = team.Id - if _, err := a.Srv().Store.Webhook().UpdateIncoming(webhook); err != nil { - CommandPrintErrorln("Failed to move incoming webhook '" + webhook.Id + "' to new team.") - } + } + for _, webhook := range incomingWebhooks { + if webhook.ChannelId == channel.Id { + webhook.TeamId = team.Id + if _, err := a.Srv().Store.Webhook().UpdateIncoming(webhook); err != nil { + CommandPrintErrorln("Failed to move incoming webhook '" + webhook.Id + "' to new team.") } } } - if outgoingWebhooks, err := a.GetOutgoingWebhooksForTeamPage(oldTeamId, 0, 10000000); err != nil { + outgoingWebhooks, err := a.GetOutgoingWebhooksForTeamPage(oldTeamId, 0, 10000000) + if err != nil { return err - } else { - for _, webhook := range outgoingWebhooks { - if webhook.ChannelId == channel.Id { - webhook.TeamId = team.Id - if _, err := a.Srv().Store.Webhook().UpdateOutgoing(webhook); err != nil { - CommandPrintErrorln("Failed to move outgoing webhook '" + webhook.Id + "' to new team.") - } + } + for _, webhook := range outgoingWebhooks { + if webhook.ChannelId == channel.Id { + webhook.TeamId = team.Id + if _, err := a.Srv().Store.Webhook().UpdateOutgoing(webhook); err != nil { + CommandPrintErrorln("Failed to move outgoing webhook '" + webhook.Id + "' to new team.") } } } diff --git a/jobs/active_users/scheduler.go b/jobs/active_users/scheduler.go index af15861879..ef20234412 100644 --- a/jobs/active_users/scheduler.go +++ b/jobs/active_users/scheduler.go @@ -43,9 +43,9 @@ func (scheduler *Scheduler) NextScheduleTime(cfg *model.Config, now time.Time, p func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, lastSuccessfulJob *model.Job) (*model.Job, *model.AppError) { data := map[string]string{} - if job, err := scheduler.App.Srv().Jobs.CreateJob(model.JOB_TYPE_ACTIVE_USERS, data); err != nil { + job, err := scheduler.App.Srv().Jobs.CreateJob(model.JOB_TYPE_ACTIVE_USERS, data) + if err != nil { return nil, err - } else { - return job, nil } + return job, nil } diff --git a/jobs/expirynotify/scheduler.go b/jobs/expirynotify/scheduler.go index 1fce85b6c3..ab03799e38 100644 --- a/jobs/expirynotify/scheduler.go +++ b/jobs/expirynotify/scheduler.go @@ -43,9 +43,9 @@ func (scheduler *Scheduler) NextScheduleTime(cfg *model.Config, now time.Time, p func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, lastSuccessfulJob *model.Job) (*model.Job, *model.AppError) { data := map[string]string{} - if job, err := scheduler.App.Srv().Jobs.CreateJob(model.JOB_TYPE_EXPIRY_NOTIFY, data); err != nil { + job, err := scheduler.App.Srv().Jobs.CreateJob(model.JOB_TYPE_EXPIRY_NOTIFY, data) + if err != nil { return nil, err - } else { - return job, nil } + return job, nil } diff --git a/jobs/product_notices/scheduler.go b/jobs/product_notices/scheduler.go index 73ddeef900..bb1eefddba 100644 --- a/jobs/product_notices/scheduler.go +++ b/jobs/product_notices/scheduler.go @@ -39,9 +39,9 @@ func (scheduler *Scheduler) NextScheduleTime(cfg *model.Config, now time.Time, p func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, lastSuccessfulJob *model.Job) (*model.Job, *model.AppError) { data := map[string]string{} - if job, err := scheduler.App.Srv().Jobs.CreateJob(model.JOB_TYPE_PRODUCT_NOTICES, data); err != nil { + job, err := scheduler.App.Srv().Jobs.CreateJob(model.JOB_TYPE_PRODUCT_NOTICES, data) + if err != nil { return nil, err - } else { - return job, nil } + return job, nil } diff --git a/jobs/schedulers.go b/jobs/schedulers.go index 481f349be2..c1820a78bc 100644 --- a/jobs/schedulers.go +++ b/jobs/schedulers.go @@ -167,13 +167,13 @@ func (schedulers *Schedulers) setNextRunTime(cfg *model.Config, idx int, now tim scheduler := schedulers.schedulers[idx] if !pendingJobs { - if pj, err := schedulers.jobs.CheckForPendingJobsByType(scheduler.JobType()); err != nil { + pj, err := schedulers.jobs.CheckForPendingJobsByType(scheduler.JobType()) + if err != nil { mlog.Error("Failed to set next job run time", mlog.Err(err)) schedulers.nextRunTimes[idx] = nil return - } else { - pendingJobs = pj } + pendingJobs = pj } lastSuccessfulJob, err := schedulers.jobs.GetLastSuccessfulJobByType(scheduler.JobType()) diff --git a/migrations/advanced_permissions_phase_2.go b/migrations/advanced_permissions_phase_2.go index 911a4d6ed6..c2a40cac3f 100644 --- a/migrations/advanced_permissions_phase_2.go +++ b/migrations/advanced_permissions_phase_2.go @@ -71,33 +71,33 @@ func (worker *Worker) runAdvancedPermissionsPhase2Migration(lastDone string) (bo if progress.CurrentTable == "TeamMembers" { // Run a TeamMembers migration batch. - if result, err := worker.srv.Store.Team().MigrateTeamMembers(progress.LastTeamId, progress.LastUserId); err != nil { + result, err := worker.srv.Store.Team().MigrateTeamMembers(progress.LastTeamId, progress.LastUserId) + if err != nil { return false, progress.ToJson(), model.NewAppError("MigrationsWorker.runAdvancedPermissionsPhase2Migration", "app.team.migrate_team_members.update.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { - if result == nil { - // We haven't progressed. That means that we've reached the end of this stage of the migration, and should now advance to the next stage. - progress.LastUserId = strings.Repeat("0", 26) - progress.CurrentTable = "ChannelMembers" - return false, progress.ToJson(), nil - } - - progress.LastTeamId = result["TeamId"] - progress.LastUserId = result["UserId"] } + if result == nil { + // We haven't progressed. That means that we've reached the end of this stage of the migration, and should now advance to the next stage. + progress.LastUserId = strings.Repeat("0", 26) + progress.CurrentTable = "ChannelMembers" + return false, progress.ToJson(), nil + } + + progress.LastTeamId = result["TeamId"] + progress.LastUserId = result["UserId"] } else if progress.CurrentTable == "ChannelMembers" { // Run a ChannelMembers migration batch. - if data, err := worker.srv.Store.Channel().MigrateChannelMembers(progress.LastChannelId, progress.LastUserId); err != nil { + data, err := worker.srv.Store.Channel().MigrateChannelMembers(progress.LastChannelId, progress.LastUserId) + if err != nil { return false, progress.ToJson(), model.NewAppError("MigrationsWorker.runAdvancedPermissionsPhase2Migration", "app.channel.migrate_channel_members.select.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { - if data == nil { - // We haven't progressed. That means we've reached the end of this final stage of the migration. - - return true, progress.ToJson(), nil - } - - progress.LastChannelId = data["ChannelId"] - progress.LastUserId = data["UserId"] } + if data == nil { + // We haven't progressed. That means we've reached the end of this final stage of the migration. + + return true, progress.ToJson(), nil + } + + progress.LastChannelId = data["ChannelId"] + progress.LastUserId = data["UserId"] } return false, progress.ToJson(), nil diff --git a/migrations/scheduler.go b/migrations/scheduler.go index acbb0bac57..f5bd064201 100644 --- a/migrations/scheduler.go +++ b/migrations/scheduler.go @@ -102,9 +102,9 @@ func (scheduler *Scheduler) createJob(migrationKey string, lastJob *model.Job, s JOB_DATA_KEY_MIGRATION_LAST_DONE: lastDone, } - if job, err := scheduler.srv.Jobs.CreateJob(model.JOB_TYPE_MIGRATIONS, data); err != nil { + job, err := scheduler.srv.Jobs.CreateJob(model.JOB_TYPE_MIGRATIONS, data) + if err != nil { return nil, err - } else { - return job, nil } + return job, nil } diff --git a/mlog/human/parser.go b/mlog/human/parser.go index 2be7efd10b..d16b5de68a 100644 --- a/mlog/human/parser.go +++ b/mlog/human/parser.go @@ -36,82 +36,82 @@ func parseLogMessage(msg string) (result LogEntry, err error) { dec := json.NewDecoder(strings.NewReader(msg)) // look for an initial "{" - if token, err := dec.Token(); err != nil { + token, err := dec.Token() + if err != nil { return result, err - } else { - d, ok := token.(json.Delim) - if !ok || d != '{' { - return result, fmt.Errorf("input is not a JSON object, found: %v", token) - } + } + d, ok := token.(json.Delim) + if !ok || d != '{' { + return result, fmt.Errorf("input is not a JSON object, found: %v", token) } // read all key-value pairs for dec.More() { - key, err := dec.Token() - if err != nil { - return result, err + key, err2 := dec.Token() + if err2 != nil { + return result, err2 } - if skey, ok := key.(string); !ok { + skey, ok2 := key.(string) + if !ok2 { return result, errors.New("key is not a value string") - } else { - if !dec.More() { - return result, errors.New("missing value pair") + } + if !dec.More() { + return result, errors.New("missing value pair") + } + + switch skey { + case "ts": + var ts json.Number + if err2 := dec.Decode(&ts); err2 != nil { + return result, err2 } - - switch skey { - case "ts": - var ts json.Number - if err := dec.Decode(&ts); err != nil { - return result, err - } - if time, err := numberToTime(ts); err != nil { - return result, err - } else { - result.Time = time - } - - case "level": - if s, err := decodeAsString(dec); err != nil { - return result, err - } else { - result.Level = s - } - - case "msg": - if s, err := decodeAsString(dec); err != nil { - return result, err - } else { - result.Message = s - } - - case "caller": - if s, err := decodeAsString(dec); err != nil { - return result, err - } else { - result.Caller = s - } - - default: - var p interface{} - if err := dec.Decode(&p); err != nil { - return result, err - } - var f mlog.Field - f.Key = skey - f.Interface = p - result.Fields = append(result.Fields, f) + timeVal, err2 := numberToTime(ts) + if err2 != nil { + return result, err2 } + result.Time = timeVal + + case "level": + s, err2 := decodeAsString(dec) + if err2 != nil { + return result, err2 + } + result.Level = s + + case "msg": + s, err2 := decodeAsString(dec) + if err2 != nil { + return result, err2 + } + result.Message = s + + case "caller": + s, err2 := decodeAsString(dec) + if err2 != nil { + return result, err2 + } + result.Caller = s + + default: + var p interface{} + if err2 := dec.Decode(&p); err2 != nil { + return result, err2 + } + var f mlog.Field + f.Key = skey + f.Interface = p + result.Fields = append(result.Fields, f) } } // read the "}" - if token, err := dec.Token(); err != nil { + token, err = dec.Token() + if err != nil { return result, err - } else { - d, ok := token.(json.Delim) - if !ok || d != '}' { - return result, fmt.Errorf("failed to read '}', read: %v", token) - } + } + d, ok = token.(json.Delim) + if !ok || d != '}' { + return result, fmt.Errorf("failed to read '}', read: %v", token) } // make sure nothing else trailing diff --git a/model/analytics_row.go b/model/analytics_row.go index cc7b7da254..d12166642d 100644 --- a/model/analytics_row.go +++ b/model/analytics_row.go @@ -27,11 +27,11 @@ func AnalyticsRowFromJson(data io.Reader) *AnalyticsRow { } func (ar AnalyticsRows) ToJson() string { - if b, err := json.Marshal(ar); err != nil { + b, err := json.Marshal(ar) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func AnalyticsRowsFromJson(data io.Reader) AnalyticsRows { diff --git a/model/audits.go b/model/audits.go index a8f01e1b9b..54e361f99b 100644 --- a/model/audits.go +++ b/model/audits.go @@ -14,17 +14,16 @@ func (o Audits) Etag() string { if len(o) > 0 { // the first in the list is always the most current return Etag(o[0].CreateAt) - } else { - return "" } + return "" } func (o Audits) ToJson() string { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func AuditsFromJson(data io.Reader) Audits { diff --git a/model/channel.go b/model/channel.go index 952ba91983..4a62ea4140 100644 --- a/model/channel.go +++ b/model/channel.go @@ -341,9 +341,8 @@ func (o *Channel) GetOtherUserIdForDM(userId string) string { func GetDMNameFromIds(userId1, userId2 string) string { if userId1 > userId2 { return userId2 + "__" + userId1 - } else { - return userId1 + "__" + userId2 } + return userId1 + "__" + userId2 } func GetGroupDisplayNameFromUsers(users []*User, truncate bool) string { diff --git a/model/channel_list.go b/model/channel_list.go index b47077aed8..4ba9e5c33b 100644 --- a/model/channel_list.go +++ b/model/channel_list.go @@ -11,11 +11,11 @@ import ( type ChannelList []*Channel func (o *ChannelList) ToJson() string { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func (o *ChannelList) Etag() string { @@ -55,11 +55,11 @@ func ChannelSliceFromJson(data io.Reader) []*Channel { type ChannelListWithTeamData []*ChannelWithTeamData func (o *ChannelListWithTeamData) ToJson() string { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func (o *ChannelListWithTeamData) Etag() string { diff --git a/model/channel_member.go b/model/channel_member.go index d7a76e2d4c..567492bfd0 100644 --- a/model/channel_member.go +++ b/model/channel_member.go @@ -65,11 +65,11 @@ type ChannelMemberForExport struct { } func (o *ChannelMembers) ToJson() string { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func (o *ChannelUnread) ToJson() string { diff --git a/model/channel_sidebar.go b/model/channel_sidebar.go index 033432c902..f1e58eb060 100644 --- a/model/channel_sidebar.go +++ b/model/channel_sidebar.go @@ -97,19 +97,19 @@ func (o SidebarCategoryWithChannels) ToJson() []byte { } func SidebarCategoriesWithChannelsToJson(o []*SidebarCategoryWithChannels) []byte { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return []byte("[]") - } else { - return b } + return b } func (o OrderedSidebarCategories) ToJson() []byte { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return []byte("[]") - } else { - return b } + return b } var categoryIdPattern = regexp.MustCompile("(favorites|channels|direct_messages)_[a-z0-9]{26}_[a-z0-9]{26}") diff --git a/model/client4.go b/model/client4.go index 5c93a0276c..b160a4a79d 100644 --- a/model/client4.go +++ b/model/client4.go @@ -94,9 +94,8 @@ func (c *Client4) boolString(value bool) string { if value { return "true" - } else { - return "false" } + return "false" } func closeBody(r *http.Response) { @@ -3001,12 +3000,12 @@ func (c *Client4) GetPostsBefore(channelId, postId string, page, perPage int, et // GetPostsAroundLastUnread gets a list of posts around last unread post by a user in a channel. func (c *Client4) GetPostsAroundLastUnread(userId, channelId string, limitBefore, limitAfter int) (*PostList, *Response) { query := fmt.Sprintf("?limit_before=%v&limit_after=%v", limitBefore, limitAfter) - if r, err := c.DoApiGet(c.GetUserRoute(userId)+c.GetChannelRoute(channelId)+"/posts/unread"+query, ""); err != nil { + r, err := c.DoApiGet(c.GetUserRoute(userId)+c.GetChannelRoute(channelId)+"/posts/unread"+query, "") + if err != nil { return nil, BuildErrorResponse(r, err) - } else { - defer closeBody(r) - return PostListFromJson(r.Body), BuildResponse(r) } + defer closeBody(r) + return PostListFromJson(r.Body), BuildResponse(r) } // SearchPosts returns any posts with matching terms string. diff --git a/model/cluster_info.go b/model/cluster_info.go index 3072c9dc37..fc15d38ca1 100644 --- a/model/cluster_info.go +++ b/model/cluster_info.go @@ -38,7 +38,6 @@ func ClusterInfosFromJson(data io.Reader) []*ClusterInfo { var objmap []*ClusterInfo if err := decoder.Decode(&objmap); err != nil { return make([]*ClusterInfo, 0) - } else { - return objmap } + return objmap } diff --git a/model/compliance.go b/model/compliance.go index 890bb5ca68..2bb32de9d1 100644 --- a/model/compliance.go +++ b/model/compliance.go @@ -110,11 +110,11 @@ func ComplianceFromJson(data io.Reader) *Compliance { } func (c Compliances) ToJson() string { - if b, err := json.Marshal(c); err != nil { + b, err := json.Marshal(c) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func CompliancesFromJson(data io.Reader) Compliances { diff --git a/model/compliance_post.go b/model/compliance_post.go index 89b850ebf5..37c114577b 100644 --- a/model/compliance_post.go +++ b/model/compliance_post.go @@ -73,10 +73,8 @@ func CompliancePostHeader() []string { func cleanComplianceStrings(in string) string { if matched, _ := regexp.MatchString("^\\s*(=|\\+|\\-)", in); matched { return "'" + in - - } else { - return in } + return in } func (cp *CompliancePost) Row() []string { diff --git a/model/file_info.go b/model/file_info.go index c622b8f2bd..e22cc09e82 100644 --- a/model/file_info.go +++ b/model/file_info.go @@ -72,9 +72,8 @@ func FileInfoFromJson(data io.Reader) *FileInfo { var fi FileInfo if err := decoder.Decode(&fi); err != nil { return nil - } else { - return &fi } + return &fi } func FileInfosToJson(infos []*FileInfo) string { @@ -88,9 +87,8 @@ func FileInfosFromJson(data io.Reader) []*FileInfo { var infos []*FileInfo if err := decoder.Decode(&infos); err != nil { return nil - } else { - return infos } + return infos } func (fi *FileInfo) PreSave() { @@ -196,13 +194,13 @@ func GetInfoForBytes(name string, data io.ReadSeeker, size int) (*FileInfo, *App if info.MimeType == "image/gif" { // Just show the gif itself instead of a preview image for animated gifs data.Seek(0, io.SeekStart) - if gifConfig, err := gif.DecodeAll(data); err != nil { + gifConfig, err := gif.DecodeAll(data) + if err != nil { // Still return the rest of the info even though it doesn't appear to be an actual gif info.HasPreviewImage = true return info, NewAppError("GetInfoForBytes", "model.file_info.get.gif.app_error", nil, err.Error(), http.StatusBadRequest) - } else { - info.HasPreviewImage = len(gifConfig.Image) == 1 } + info.HasPreviewImage = len(gifConfig.Image) == 1 } else { info.HasPreviewImage = true } diff --git a/model/gitlab/gitlab.go b/model/gitlab/gitlab.go index c8f3ae7a5e..19639f0f70 100644 --- a/model/gitlab/gitlab.go +++ b/model/gitlab/gitlab.go @@ -70,9 +70,8 @@ func (glu *GitLabUser) ToJson() string { b, err := json.Marshal(glu) if err != nil { return "" - } else { - return string(b) } + return string(b) } func (glu *GitLabUser) IsValid() error { diff --git a/model/incoming_webhook.go b/model/incoming_webhook.go index 78f1e4e896..f8fffe201e 100644 --- a/model/incoming_webhook.go +++ b/model/incoming_webhook.go @@ -182,9 +182,8 @@ func decodeIncomingWebhookRequest(by []byte) (*IncomingWebhookRequest, error) { err := decoder.Decode(&o) if err == nil { return &o, nil - } else { - return nil, err } + return nil, err } func IncomingWebhookRequestFromJson(data io.Reader) (*IncomingWebhookRequest, *AppError) { @@ -211,7 +210,6 @@ func (o *IncomingWebhookRequest) ToJson() string { b, err := json.Marshal(o) if err != nil { return "" - } else { - return string(b) } + return string(b) } diff --git a/model/job.go b/model/job.go index b6c053a42d..0c006ea44c 100644 --- a/model/job.go +++ b/model/job.go @@ -96,9 +96,8 @@ func JobFromJson(data io.Reader) *Job { var job Job if err := json.NewDecoder(data).Decode(&job); err == nil { return &job - } else { - return nil } + return nil } func JobsToJson(jobs []*Job) string { @@ -110,9 +109,8 @@ func JobsFromJson(data io.Reader) []*Job { var jobs []*Job if err := json.NewDecoder(data).Decode(&jobs); err == nil { return jobs - } else { - return nil } + return nil } func (j *Job) DataToJson() string { diff --git a/model/post_list.go b/model/post_list.go index d00b68b58a..ebf7bef754 100644 --- a/model/post_list.go +++ b/model/post_list.go @@ -58,9 +58,8 @@ func (o *PostList) ToJson() string { b, err := json.Marshal(©) if err != nil { return "" - } else { - return string(b) } + return string(b) } func (o *PostList) MakeNonNil() { diff --git a/model/post_search_results.go b/model/post_search_results.go index 74ef4b5259..fc9ba083df 100644 --- a/model/post_search_results.go +++ b/model/post_search_results.go @@ -28,9 +28,8 @@ func (o *PostSearchResults) ToJson() string { b, err := json.Marshal(©) if err != nil { return "" - } else { - return string(b) } + return string(b) } func PostSearchResultsFromJson(data io.Reader) *PostSearchResults { diff --git a/model/preferences.go b/model/preferences.go index 6ed845b6c1..c2d2486547 100644 --- a/model/preferences.go +++ b/model/preferences.go @@ -19,9 +19,8 @@ func PreferencesFromJson(data io.Reader) (Preferences, error) { decoder := json.NewDecoder(data) var o Preferences err := decoder.Decode(&o) - if err == nil { - return o, nil - } else { + if err != nil { return nil, err } + return o, nil } diff --git a/model/push_response.go b/model/push_response.go index f57d3f4ed0..227a089b5d 100644 --- a/model/push_response.go +++ b/model/push_response.go @@ -48,7 +48,6 @@ func PushResponseFromJson(data io.Reader) PushResponse { var objmap PushResponse if err := decoder.Decode(&objmap); err != nil { return make(map[string]string) - } else { - return objmap } + return objmap } diff --git a/model/reaction.go b/model/reaction.go index 50879c67b4..6f950d74c3 100644 --- a/model/reaction.go +++ b/model/reaction.go @@ -27,9 +27,8 @@ func ReactionFromJson(data io.Reader) *Reaction { if err := json.NewDecoder(data).Decode(&o); err != nil { return nil - } else { - return &o } + return &o } func ReactionsToJson(o []*Reaction) string { @@ -48,9 +47,8 @@ func MapPostIdToReactionsFromJson(data io.Reader) map[string][]*Reaction { var objmap map[string][]*Reaction if err := decoder.Decode(&objmap); err != nil { return make(map[string][]*Reaction) - } else { - return objmap } + return objmap } func ReactionsFromJson(data io.Reader) []*Reaction { @@ -58,9 +56,8 @@ func ReactionsFromJson(data io.Reader) []*Reaction { if err := json.NewDecoder(data).Decode(&o); err != nil { return nil - } else { - return o } + return o } func (o *Reaction) IsValid() *AppError { diff --git a/model/scheme.go b/model/scheme.go index 630f14a6d6..55b7a5828e 100644 --- a/model/scheme.go +++ b/model/scheme.go @@ -101,9 +101,8 @@ func SchemesFromJson(data io.Reader) []*Scheme { var schemes []*Scheme if err := json.NewDecoder(data).Decode(&schemes); err == nil { return schemes - } else { - return nil } + return nil } func (scheme *Scheme) IsValid() bool { diff --git a/model/security_bulletin.go b/model/security_bulletin.go index 720797a6eb..66a65812a5 100644 --- a/model/security_bulletin.go +++ b/model/security_bulletin.go @@ -27,11 +27,11 @@ func SecurityBulletinFromJson(data io.Reader) *SecurityBulletin { } func (sb SecurityBulletins) ToJson() string { - if b, err := json.Marshal(sb); err != nil { + b, err := json.Marshal(sb) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func SecurityBulletinsFromJson(data io.Reader) SecurityBulletins { diff --git a/model/session.go b/model/session.go index a0e8b443a8..af54f2b918 100644 --- a/model/session.go +++ b/model/session.go @@ -217,11 +217,11 @@ func (s *Session) GetCSRF() string { } func SessionsToJson(o []*Session) string { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func SessionsFromJson(data io.Reader) []*Session { diff --git a/model/system.go b/model/system.go index 7482b93ccb..2b54dbc3c4 100644 --- a/model/system.go +++ b/model/system.go @@ -184,9 +184,8 @@ func WarnMetricStatusFromJson(data io.Reader) *WarnMetricStatus { var o WarnMetricStatus if err := json.NewDecoder(data).Decode(&o); err != nil { return nil - } else { - return &o } + return &o } func MapWarnMetricStatusToJson(o map[string]*WarnMetricStatus) string { diff --git a/model/team_member.go b/model/team_member.go index b747f17cd1..26ed8d4ee5 100644 --- a/model/team_member.go +++ b/model/team_member.go @@ -98,11 +98,11 @@ func EmailInviteWithErrorToEmails(o []*EmailInviteWithError) []string { } func EmailInviteWithErrorToJson(o []*EmailInviteWithError) string { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func EmailInviteWithErrorToString(o *EmailInviteWithError) string { @@ -120,11 +120,11 @@ func TeamMembersWithErrorToTeamMembers(o []*TeamMemberWithError) []*TeamMember { } func TeamMembersWithErrorToJson(o []*TeamMemberWithError) string { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func TeamMemberWithErrorToString(o *TeamMemberWithError) string { @@ -138,11 +138,11 @@ func TeamMembersWithErrorFromJson(data io.Reader) []*TeamMemberWithError { } func TeamMembersToJson(o []*TeamMember) string { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func TeamMembersFromJson(data io.Reader) []*TeamMember { @@ -152,11 +152,11 @@ func TeamMembersFromJson(data io.Reader) []*TeamMember { } func TeamsUnreadToJson(o []*TeamUnread) string { - if b, err := json.Marshal(o); err != nil { + b, err := json.Marshal(o) + if err != nil { return "[]" - } else { - return string(b) } + return string(b) } func TeamsUnreadFromJson(data io.Reader) []*TeamUnread { diff --git a/model/user_autocomplete.go b/model/user_autocomplete.go index 48a892e2cc..118e138d3a 100644 --- a/model/user_autocomplete.go +++ b/model/user_autocomplete.go @@ -31,11 +31,10 @@ func UserAutocompleteFromJson(data io.Reader) *UserAutocomplete { decoder := json.NewDecoder(data) autocomplete := new(UserAutocomplete) err := decoder.Decode(&autocomplete) - if err == nil { - return autocomplete - } else { + if err != nil { return nil } + return autocomplete } func (o *UserAutocompleteInChannel) ToJson() string { diff --git a/model/utils.go b/model/utils.go index 172e8de19e..f8c8a47f7e 100644 --- a/model/utils.go +++ b/model/utils.go @@ -113,9 +113,8 @@ func (er *AppError) Translate(T goi18n.TranslateFunc) { func (er *AppError) SystemMessage(T goi18n.TranslateFunc) string { if er.params == nil { return T(er.Id) - } else { - return T(er.Id, er.params) } + return T(er.Id, er.params) } func (er *AppError) ToJson() string { @@ -136,11 +135,10 @@ func AppErrorFromJson(data io.Reader) *AppError { decoder := json.NewDecoder(strings.NewReader(str)) var er AppError err := decoder.Decode(&er) - if err == nil { - return &er - } else { + if err != nil { return NewAppError("AppErrorFromJson", "model.utils.decode_json.app_error", nil, "body: "+str, http.StatusInternalServerError) } + return &er } func NewAppError(where string, id string, params map[string]interface{}, details string, status int) *AppError { @@ -258,9 +256,8 @@ func MapFromJson(data io.Reader) map[string]string { var objmap map[string]string if err := decoder.Decode(&objmap); err != nil { return make(map[string]string) - } else { - return objmap } + return objmap } // MapFromJson will decode the key/value pair map @@ -270,9 +267,8 @@ func MapBoolFromJson(data io.Reader) map[string]bool { var objmap map[string]bool if err := decoder.Decode(&objmap); err != nil { return make(map[string]bool) - } else { - return objmap } + return objmap } func ArrayToJson(objmap []string) string { @@ -286,9 +282,8 @@ func ArrayFromJson(data io.Reader) []string { var objmap []string if err := decoder.Decode(&objmap); err != nil { return make([]string, 0) - } else { - return objmap } + return objmap } func ArrayFromInterface(data interface{}) []string { @@ -319,9 +314,8 @@ func StringInterfaceFromJson(data io.Reader) map[string]interface{} { var objmap map[string]interface{} if err := decoder.Decode(&objmap); err != nil { return make(map[string]interface{}) - } else { - return objmap } + return objmap } func StringToJson(s string) string { @@ -335,9 +329,8 @@ func StringFromJson(data io.Reader) string { var s string if err := decoder.Decode(&s); err != nil { return "" - } else { - return s } + return s } func GetServerIpAddress(iface string) string { @@ -504,9 +497,8 @@ func GetImageMimeType(ext string) string { ext = strings.ToLower(ext) if len(IMAGE_MIME_TYPES[ext]) == 0 { return "image" - } else { - return IMAGE_MIME_TYPES[ext] } + return IMAGE_MIME_TYPES[ext] } func ClearMentionTags(post string) string { diff --git a/model/version.go b/model/version.go index 6314566008..afd8d66cd0 100644 --- a/model/version.go +++ b/model/version.go @@ -148,9 +148,8 @@ func IsCurrentVersion(versionToCheck string) bool { if toCheckMajor == currentMajor && toCheckMinor == currentMinor { return true - } else { - return false } + return false } func IsPreviousVersionsSupported(versionToCheck string) bool { diff --git a/services/filesstore/s3store.go b/services/filesstore/s3store.go index 9b616efb83..a1d44b976c 100644 --- a/services/filesstore/s3store.go +++ b/services/filesstore/s3store.go @@ -171,11 +171,11 @@ func (b *S3FileBackend) ReadFile(path string) ([]byte, error) { } defer minioObject.Close() - if f, err := ioutil.ReadAll(minioObject); err != nil { + f, err := ioutil.ReadAll(minioObject) + if err != nil { return nil, errors.Wrapf(err, "unable to read file %s", path) - } else { - return f, nil } + return f, nil } func (b *S3FileBackend) FileExists(path string) (bool, error) { diff --git a/services/searchengine/bleveengine/indexer/indexing_job.go b/services/searchengine/bleveengine/indexer/indexing_job.go index 9dba645cff..aa695a8e8d 100644 --- a/services/searchengine/bleveengine/indexer/indexing_job.go +++ b/services/searchengine/bleveengine/indexer/indexing_job.go @@ -288,12 +288,11 @@ func (worker *BleveIndexerWorker) IndexPostsBatch(progress IndexingProgress) (In if err != nil { if tries >= 10 { return progress, model.NewAppError("IndexPostsBatch", "app.post.get_posts_batch_for_indexing.get.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { - mlog.Warn("Failed to get posts batch for indexing. Retrying.", mlog.Err(err)) - - // Wait a bit before trying again. - time.Sleep(15 * time.Second) } + mlog.Warn("Failed to get posts batch for indexing. Retrying.", mlog.Err(err)) + + // Wait a bit before trying again. + time.Sleep(15 * time.Second) } tries++ @@ -443,12 +442,11 @@ func (worker *BleveIndexerWorker) IndexUsersBatch(progress IndexingProgress) (In if usersBatch, err := worker.jobServer.Store.User().GetUsersBatchForIndexing(progress.LastEntityTime, endTime, BATCH_SIZE); err != nil { if tries >= 10 { return progress, model.NewAppError("IndexUsersBatch", "app.user.get_users_batch_for_indexing.get_users.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { - mlog.Warn("Failed to get users batch for indexing. Retrying.", mlog.Err(err)) - - // Wait a bit before trying again. - time.Sleep(15 * time.Second) } + mlog.Warn("Failed to get users batch for indexing. Retrying.", mlog.Err(err)) + + // Wait a bit before trying again. + time.Sleep(15 * time.Second) } else { users = usersBatch } diff --git a/store/localcachelayer/layer.go b/store/localcachelayer/layer.go index 179000e79c..e6bf1e4728 100644 --- a/store/localcachelayer/layer.go +++ b/store/localcachelayer/layer.go @@ -392,17 +392,17 @@ func (s *LocalCacheStore) doStandardAddToCache(cache cache.Cache, key string, va } func (s *LocalCacheStore) doStandardReadCache(cache cache.Cache, key string, value interface{}) error { - if err := cache.Get(key, value); err == nil { + err := cache.Get(key, value) + if err == nil { if s.metrics != nil { s.metrics.IncrementMemCacheHitCounter(cache.Name()) } return nil - } else { - if s.metrics != nil { - s.metrics.IncrementMemCacheMissCounter(cache.Name()) - } - return err } + if s.metrics != nil { + s.metrics.IncrementMemCacheMissCounter(cache.Name()) + } + return err } func (s *LocalCacheStore) doClearCacheCluster(cache cache.Cache) { diff --git a/store/sqlstore/plugin_store.go b/store/sqlstore/plugin_store.go index 533fde5c5e..3aa282a56f 100644 --- a/store/sqlstore/plugin_store.go +++ b/store/sqlstore/plugin_store.go @@ -120,9 +120,8 @@ func (ps SqlPluginStore) CompareAndSet(kv *model.PluginKeyValue, oldValue []byte // need to return it. if IsUniqueConstraintError(err, []string{"PRIMARY", "PluginId", "Key", "PKey", "pkey"}) { return false, nil - } else { - return false, errors.Wrap(err, "failed to insert PluginKeyValue") } + return false, errors.Wrap(err, "failed to insert PluginKeyValue") } } else { currentTime := model.GetMillis() diff --git a/store/sqlstore/session_store.go b/store/sqlstore/session_store.go index 11518e721e..d8a8b609ef 100644 --- a/store/sqlstore/session_store.go +++ b/store/sqlstore/session_store.go @@ -292,16 +292,16 @@ func (me SqlSessionStore) Cleanup(expiryTime int64, batchSize int64) { var rowsAffected int64 = 1 for rowsAffected > 0 { - if sqlResult, err := me.GetMaster().Exec(query, map[string]interface{}{"ExpiresAt": expiryTime, "Limit": batchSize}); err != nil { + sqlResult, err := me.GetMaster().Exec(query, map[string]interface{}{"ExpiresAt": expiryTime, "Limit": batchSize}) + if err != nil { + mlog.Error("Unable to cleanup session store.", mlog.Err(err)) + return + } + var rowErr error + rowsAffected, rowErr = sqlResult.RowsAffected() + if rowErr != nil { mlog.Error("Unable to cleanup session store.", mlog.Err(err)) return - } else { - var rowErr error - rowsAffected, rowErr = sqlResult.RowsAffected() - if rowErr != nil { - mlog.Error("Unable to cleanup session store.", mlog.Err(err)) - return - } } time.Sleep(SESSIONS_CLEANUP_DELAY_MILLISECONDS * time.Millisecond) diff --git a/store/sqlstore/user_store.go b/store/sqlstore/user_store.go index a507c9fee7..298de5020b 100644 --- a/store/sqlstore/user_store.go +++ b/store/sqlstore/user_store.go @@ -518,9 +518,8 @@ func applyMultiRoleFilters(query sq.SelectBuilder, systemRoles []string, teamRol if len(sqOr) > 0 { return query.Where(sqOr) - } else { - return query } + return query } func applyChannelGroupConstrainedFilter(query sq.SelectBuilder, channelId string) sq.SelectBuilder { diff --git a/store/storetest/plugin_store.go b/store/storetest/plugin_store.go index 1715ac390f..f6393bbb3e 100644 --- a/store/storetest/plugin_store.go +++ b/store/storetest/plugin_store.go @@ -728,9 +728,8 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store, s SqlStore) { ok, err := ss.Plugin().SetWithOptions(kv.PluginId, kv.Key, kv.Value, options) if !ok { return nil, err - } else { - return kv, err } + return kv, err }) }) } diff --git a/store/storetest/settings.go b/store/storetest/settings.go index b257c4204e..8c26adecbc 100644 --- a/store/storetest/settings.go +++ b/store/storetest/settings.go @@ -29,9 +29,8 @@ const ( func getEnv(name, defaultValue string) string { if value := os.Getenv(name); value != "" { return value - } else { - return defaultValue } + return defaultValue } func log(message string) { diff --git a/utils/html.go b/utils/html.go index 78904ffab9..b16fe5c945 100644 --- a/utils/html.go +++ b/utils/html.go @@ -43,11 +43,11 @@ func NewHTMLTemplateWatcher(directory string) (*HTMLTemplateWatcher, error) { return nil, err } - if htmlTemplates, err := template.ParseGlob(filepath.Join(templatesDir, "*.html")); err != nil { + htmlTemplates, err := template.ParseGlob(filepath.Join(templatesDir, "*.html")) + if err != nil { return nil, err - } else { - ret.templates.Store(htmlTemplates) } + ret.templates.Store(htmlTemplates) go func() { defer close(ret.stopped) diff --git a/utils/license.go b/utils/license.go index f1946dc29c..b7995a4f52 100644 --- a/utils/license.go +++ b/utils/license.go @@ -87,12 +87,12 @@ func GetAndValidateLicenseFileFromDisk(location string) (*model.License, []byte) mlog.Info("License key has not been uploaded. Loading license key from disk at", mlog.String("filename", fileName)) licenseBytes := GetLicenseFileFromDisk(fileName) - if success, licenseStr := ValidateLicense(licenseBytes); !success { + success, licenseStr := ValidateLicense(licenseBytes) + if !success { mlog.Error("Found license key at %v but it appears to be invalid.", mlog.String("filename", fileName)) return nil, nil - } else { - return model.LicenseFromJson(strings.NewReader(licenseStr)), licenseBytes } + return model.LicenseFromJson(strings.NewReader(licenseStr)), licenseBytes } func GetLicenseFileFromDisk(fileName string) []byte { @@ -116,9 +116,8 @@ func GetLicenseFileLocation(fileLocation string) string { if fileLocation == "" { configDir, _ := fileutils.FindDir("config") return filepath.Join(configDir, "mattermost.mattermost-license") - } else { - return fileLocation } + return fileLocation } func GetClientLicense(l *model.License) map[string]string { diff --git a/utils/markdown/inlines.go b/utils/markdown/inlines.go index a67f2f04f1..43dee3bd32 100644 --- a/utils/markdown/inlines.go +++ b/utils/markdown/inlines.go @@ -406,10 +406,9 @@ func (p *inlineParser) lookForLinkOrImage() { } p.delimiterStack.Remove(element) return - } else { - p.delimiterStack.Remove(element) - break } + p.delimiterStack.Remove(element) + break } absPos := relativeToAbsolutePosition(p.ranges, p.position) p.inlines = append(p.inlines, &Text{ diff --git a/utils/subpath.go b/utils/subpath.go index aa30c0816d..b6f61ee0de 100644 --- a/utils/subpath.go +++ b/utils/subpath.go @@ -120,13 +120,13 @@ func UpdateAssetsSubpathInDir(subpath, directory string) error { // Rewrite the manifest.json and *.css references to `/static/*` (or a previously rewritten subpath). err = filepath.Walk(staticDir, func(walkPath string, info os.FileInfo, err error) error { if filepath.Base(walkPath) == "manifest.json" || filepath.Ext(walkPath) == ".css" { - if old, err := ioutil.ReadFile(walkPath); err != nil { + old, err := ioutil.ReadFile(walkPath) + if err != nil { return errors.Wrapf(err, "failed to open %s", walkPath) - } else { - new := strings.Replace(string(old), pathToReplace, newPath, -1) - if err = ioutil.WriteFile(walkPath, []byte(new), 0); err != nil { - return errors.Wrapf(err, "failed to update %s with subpath %s", walkPath, subpath) - } + } + new := strings.Replace(string(old), pathToReplace, newPath, -1) + if err = ioutil.WriteFile(walkPath, []byte(new), 0); err != nil { + return errors.Wrapf(err, "failed to update %s with subpath %s", walkPath, subpath) } } diff --git a/utils/testutils/testutils.go b/utils/testutils/testutils.go index 27a865381d..e2568e0e3d 100644 --- a/utils/testutils/testutils.go +++ b/utils/testutils/testutils.go @@ -28,9 +28,8 @@ func ReadTestFile(name string) ([]byte, error) { data := &bytes.Buffer{} if _, err := io.Copy(data, file); err != nil { return nil, err - } else { - return data.Bytes(), nil } + return data.Bytes(), nil } // GetInterface returns the best match of an interface that might be listening on a given port. diff --git a/web/saml.go b/web/saml.go index 795879c3cc..5d3f609351 100644 --- a/web/saml.go +++ b/web/saml.go @@ -56,13 +56,13 @@ func loginWithSaml(c *Context, w http.ResponseWriter, r *http.Request) { relayState = b64.StdEncoding.EncodeToString([]byte(model.MapToJson(relayProps))) } - if data, err := samlInterface.BuildRequest(relayState); err != nil { + data, err := samlInterface.BuildRequest(relayState) + if err != nil { c.Err = err return - } else { - w.Header().Set("Content-Type", "application/x-www-form-urlencoded") - http.Redirect(w, r, data.URL, http.StatusFound) } + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + http.Redirect(w, r, data.URL, http.StatusFound) } func completeSaml(c *Context, w http.ResponseWriter, r *http.Request) { @@ -80,12 +80,12 @@ func completeSaml(c *Context, w http.ResponseWriter, r *http.Request) { relayProps := make(map[string]string) if len(relayState) > 0 { stateStr := "" - if b, err := b64.StdEncoding.DecodeString(relayState); err != nil { + b, err := b64.StdEncoding.DecodeString(relayState) + if err != nil { c.Err = model.NewAppError("completeSaml", "api.user.authorize_oauth_user.invalid_state.app_error", nil, err.Error(), http.StatusFound) return - } else { - stateStr = string(b) } + stateStr = string(b) relayProps = model.MapFromJson(strings.NewReader(stateStr)) }