* MM-31064: Simplify indentation

Reduce indentation where possible.

```release-note
NONE
```

Command ran to verify:
golangci-lint run --disable-all --enable golint --max-issues-per-linter=10000 --max-same-issues=100000 ./... | grep "block ends with a return state"

https://mattermost.atlassian.net/browse/MM-31064

* incorporate review comments

* enable golint for outdent rule

* fix remaining issues

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Agniva De Sarker
2020-12-21 21:20:47 +05:30
коммит произвёл GitHub
родитель 7419898449
Коммит 1a131b54af
61 изменённых файлов: 323 добавлений и 380 удалений

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

@@ -48,9 +48,8 @@ issues:
path: ".*_test.go|store/storetest" path: ".*_test.go|store/storetest"
- linters: - linters:
# ignore golint error for a lot of packages for now
- golint - 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: - linters:
- misspell - misspell

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

@@ -1141,15 +1141,13 @@ func (th *TestHelper) SetupChannelScheme() *model.Scheme {
} }
func (th *TestHelper) SetupScheme(scope string) *model.Scheme { func (th *TestHelper) SetupScheme(scope string) *model.Scheme {
scheme := model.Scheme{ scheme, err := th.App.CreateScheme(&model.Scheme{
Name: model.NewId(), Name: model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
Scope: scope, Scope: scope,
} })
if err != nil {
if scheme, err := th.App.CreateScheme(&scheme); err == nil {
return scheme
} else {
panic(err) panic(err)
} }
return scheme
} }

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

@@ -631,10 +631,9 @@ func TestUpdateTeamPrivacy(t *testing.T) {
if test.errChecker != nil { if test.errChecker != nil {
test.errChecker(t, resp) test.errChecker(t, resp)
return 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.wantType, team.Type)
require.Equal(t, test.wantOpenInvite, team.AllowOpenInvite) require.Equal(t, test.wantOpenInvite, team.AllowOpenInvite)
if test.wantInviteIdChanged { if test.wantInviteIdChanged {

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

@@ -281,16 +281,16 @@ func (a *App) GetEmojiStaticUrl(emojiName string) (string, *model.AppError) {
return path.Join(subPath, "/static/emoji", id+".png"), nil 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 return path.Join(subPath, "/api/v4/emoji", emoji.Id, "image"), nil
} else { }
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
switch { switch {
case errors.As(err, &nfErr): case errors.As(err, &nfErr):
return "", model.NewAppError("GetEmojiStaticUrl", "app.emoji.get_by_name.no_result", nil, err.Error(), http.StatusNotFound) return "", model.NewAppError("GetEmojiStaticUrl", "app.emoji.get_by_name.no_result", nil, err.Error(), http.StatusNotFound)
default: default:
return "", model.NewAppError("GetEmojiStaticUrl", "app.emoji.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError) return "", model.NewAppError("GetEmojiStaticUrl", "app.emoji.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError)
}
} }
} }

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

@@ -629,31 +629,27 @@ func (th *TestHelper) CheckChannelsCount(t *testing.T, expected int64) {
} }
func (th *TestHelper) SetupTeamScheme() *model.Scheme { func (th *TestHelper) SetupTeamScheme() *model.Scheme {
scheme := model.Scheme{ scheme, err := th.App.CreateScheme(&model.Scheme{
Name: model.NewId(), Name: model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SCHEME_SCOPE_TEAM,
} })
if err != nil {
if scheme, err := th.App.CreateScheme(&scheme); err == nil {
return scheme
} else {
panic(err) panic(err)
} }
return scheme
} }
func (th *TestHelper) SetupChannelScheme() *model.Scheme { func (th *TestHelper) SetupChannelScheme() *model.Scheme {
scheme := model.Scheme{ scheme, err := th.App.CreateScheme(&model.Scheme{
Name: model.NewId(), Name: model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SCHEME_SCOPE_CHANNEL,
} })
if err != nil {
if scheme, err := th.App.CreateScheme(&scheme); err == nil {
return scheme
} else {
panic(err) panic(err)
} }
return scheme
} }
func (th *TestHelper) SetupPluginAPI() *PluginAPI { func (th *TestHelper) SetupPluginAPI() *PluginAPI {

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

@@ -238,13 +238,12 @@ func (a *App) DoPostActionWithCookie(postId, actionId, userId, selectedOption st
return "", appErr return "", appErr
} }
return "", nil 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 var response model.PostActionIntegrationResponse
if err := json.NewDecoder(resp.Body).Decode(&response); err != nil { if err := json.NewDecoder(resp.Body).Decode(&response); err != nil {

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

@@ -50,16 +50,16 @@ func (api *PluginAPI) LoadPluginConfiguration(dest interface{}) error {
finalConfig[strings.ToLower(setting)] = value 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)) api.logger.Error("Error marshaling config for plugin", mlog.Err(err))
return nil 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 { func (api *PluginAPI) RegisterCommand(command *model.Command) error {

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

@@ -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 // one of these required fields exists before returning the OpenGraph data
if og.Title != "" || og.Type != "" || og.URL != "" { if og.Title != "" || og.Type != "" || og.URL != "" {
return og, nil, nil return og, nil, nil
} else {
return nil, nil, nil
} }
return nil, nil, nil
} else { } else {
// Not an image or web page with OpenGraph information // Not an image or web page with OpenGraph information
return nil, nil, nil return nil, nil, nil

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

@@ -113,14 +113,13 @@ func (*InviteProvider) DoCommand(a *app.App, args *model.CommandArgs, message st
}), }),
ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL, ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL,
} }
} else { }
// User doing the inviting is *not* a member of the channel. // User doing the inviting is *not* a member of the channel.
return &model.CommandResponse{ return &model.CommandResponse{
Text: args.T("api.command_invite.private_channel.app_error", map[string]interface{}{ Text: args.T("api.command_invite.private_channel.app_error", map[string]interface{}{
"Channel": channelToJoin.Name, "Channel": channelToJoin.Name,
}), }),
ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL, ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL,
}
} }
} }
default: default:

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

@@ -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 { if directChannel, err = a.GetOrCreateDirectChannel(args.UserId, userProfile.Id); err != nil {
mlog.Error(err.Error()) mlog.Error(err.Error())
return &model.CommandResponse{Text: args.T("api.command_msg.dm_fail.app_error"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} 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 { } else {
mlog.Error(channelErr.Error()) mlog.Error(channelErr.Error())
return &model.CommandResponse{Text: args.T("api.command_msg.dm_fail.app_error"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} return &model.CommandResponse{Text: args.T("api.command_msg.dm_fail.app_error"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}

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

@@ -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 channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP {
if channelMember.NotifyProps[model.MARK_UNREAD_NOTIFY_PROP] == model.CHANNEL_NOTIFY_MENTION { 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} 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 { 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} 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}
} }

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

@@ -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) 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) 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 { if existingOutHook.ChannelId == hook.ChannelId && len(urlIntersect) != 0 && len(triggerIntersect) != 0 {
urlIntersect := utils.StringArrayIntersection(existingOutHook.CallbackURLs, hook.CallbackURLs) return nil, model.NewAppError("CreateOutgoingWebhook", "api.webhook.create_outgoing.intersect.app_error", nil, "", http.StatusInternalServerError)
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)
}
} }
} }
@@ -667,11 +666,11 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq
webhookType := req.Type webhookType := req.Type
var hook *model.IncomingWebhook 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) 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) uchan := make(chan store.StoreResult, 1)
go func() { go func() {
@@ -699,15 +698,15 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq
if len(channelName) != 0 { if len(channelName) != 0 {
if channelName[0] == '@' { if channelName[0] == '@' {
if result, err := a.Srv().Store.User().GetByUsername(channelName[1:]); err != nil { result, nErr := a.Srv().Store.User().GetByUsername(channelName[1:])
return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.user.app_error", nil, err.Error(), http.StatusBadRequest) if nErr != nil {
} else { return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.user.app_error", nil, nErr.Error(), http.StatusBadRequest)
if ch, err := a.GetOrCreateDirectChannel(hook.UserId, result.Id); err != nil {
return err
} else {
channel = ch
}
} }
ch, err := a.GetOrCreateDirectChannel(hook.UserId, result.Id)
if err != nil {
return err
}
channel = ch
} else if channelName[0] == '#' { } else if channelName[0] == '#' {
cchan = make(chan store.StoreResult, 1) cchan = make(chan store.StoreResult, 1)
go func() { go func() {
@@ -738,18 +737,17 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq
} }
if channel == nil { if channel == nil {
result := <-cchan result2 := <-cchan
if result.NErr != nil { if result2.NErr != nil {
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
switch { 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) return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.channel.app_error", nil, nfErr.Error(), http.StatusNotFound)
default: 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 { if hook.ChannelLocked && hook.ChannelId != channel.Id {
@@ -757,11 +755,11 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq
} }
var user *model.User 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) 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 && if a.Srv().License() != nil && *a.Config().TeamSettings.ExperimentalTownSquareIsReadOnly &&
channel.Name == model.DEFAULT_CHANNEL && !a.RolesGrantPermission(user.GetRoles(), model.PERMISSION_MANAGE_SYSTEM.Id) { channel.Name == model.DEFAULT_CHANNEL && !a.RolesGrantPermission(user.GetRoles(), model.PERMISSION_MANAGE_SYSTEM.Id) {

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

@@ -435,28 +435,28 @@ func moveChannel(a *app.App, team *model.Team, channel *model.Channel, user *mod
auditRec.AddMeta("team", team) auditRec.AddMeta("team", team)
a.LogAuditRec(auditRec, nil) 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 return err
} else { }
for _, webhook := range incomingWebhooks { for _, webhook := range incomingWebhooks {
if webhook.ChannelId == channel.Id { if webhook.ChannelId == channel.Id {
webhook.TeamId = team.Id webhook.TeamId = team.Id
if _, err := a.Srv().Store.Webhook().UpdateIncoming(webhook); err != nil { if _, err := a.Srv().Store.Webhook().UpdateIncoming(webhook); err != nil {
CommandPrintErrorln("Failed to move incoming webhook '" + webhook.Id + "' to new team.") 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 return err
} else { }
for _, webhook := range outgoingWebhooks { for _, webhook := range outgoingWebhooks {
if webhook.ChannelId == channel.Id { if webhook.ChannelId == channel.Id {
webhook.TeamId = team.Id webhook.TeamId = team.Id
if _, err := a.Srv().Store.Webhook().UpdateOutgoing(webhook); err != nil { if _, err := a.Srv().Store.Webhook().UpdateOutgoing(webhook); err != nil {
CommandPrintErrorln("Failed to move outgoing webhook '" + webhook.Id + "' to new team.") CommandPrintErrorln("Failed to move outgoing webhook '" + webhook.Id + "' to new team.")
}
} }
} }
} }

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

@@ -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) { func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, lastSuccessfulJob *model.Job) (*model.Job, *model.AppError) {
data := map[string]string{} 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 return nil, err
} else {
return job, nil
} }
return job, nil
} }

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

@@ -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) { func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, lastSuccessfulJob *model.Job) (*model.Job, *model.AppError) {
data := map[string]string{} 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 return nil, err
} else {
return job, nil
} }
return job, nil
} }

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

@@ -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) { func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, lastSuccessfulJob *model.Job) (*model.Job, *model.AppError) {
data := map[string]string{} 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 return nil, err
} else {
return job, nil
} }
return job, nil
} }

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

@@ -167,13 +167,13 @@ func (schedulers *Schedulers) setNextRunTime(cfg *model.Config, idx int, now tim
scheduler := schedulers.schedulers[idx] scheduler := schedulers.schedulers[idx]
if !pendingJobs { 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)) mlog.Error("Failed to set next job run time", mlog.Err(err))
schedulers.nextRunTimes[idx] = nil schedulers.nextRunTimes[idx] = nil
return return
} else {
pendingJobs = pj
} }
pendingJobs = pj
} }
lastSuccessfulJob, err := schedulers.jobs.GetLastSuccessfulJobByType(scheduler.JobType()) lastSuccessfulJob, err := schedulers.jobs.GetLastSuccessfulJobByType(scheduler.JobType())

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

@@ -71,33 +71,33 @@ func (worker *Worker) runAdvancedPermissionsPhase2Migration(lastDone string) (bo
if progress.CurrentTable == "TeamMembers" { if progress.CurrentTable == "TeamMembers" {
// Run a TeamMembers migration batch. // 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) 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" { } else if progress.CurrentTable == "ChannelMembers" {
// Run a ChannelMembers migration batch. // 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) 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 return false, progress.ToJson(), nil

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

@@ -102,9 +102,9 @@ func (scheduler *Scheduler) createJob(migrationKey string, lastJob *model.Job, s
JOB_DATA_KEY_MIGRATION_LAST_DONE: lastDone, 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 return nil, err
} else {
return job, nil
} }
return job, nil
} }

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

@@ -36,82 +36,82 @@ func parseLogMessage(msg string) (result LogEntry, err error) {
dec := json.NewDecoder(strings.NewReader(msg)) dec := json.NewDecoder(strings.NewReader(msg))
// look for an initial "{" // look for an initial "{"
if token, err := dec.Token(); err != nil { token, err := dec.Token()
if err != nil {
return result, err return result, err
} else { }
d, ok := token.(json.Delim) d, ok := token.(json.Delim)
if !ok || d != '{' { if !ok || d != '{' {
return result, fmt.Errorf("input is not a JSON object, found: %v", token) return result, fmt.Errorf("input is not a JSON object, found: %v", token)
}
} }
// read all key-value pairs // read all key-value pairs
for dec.More() { for dec.More() {
key, err := dec.Token() key, err2 := dec.Token()
if err != nil { if err2 != nil {
return result, err 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") return result, errors.New("key is not a value string")
} else { }
if !dec.More() { if !dec.More() {
return result, errors.New("missing value pair") 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
} }
timeVal, err2 := numberToTime(ts)
switch skey { if err2 != nil {
case "ts": return result, err2
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)
} }
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 "}" // read the "}"
if token, err := dec.Token(); err != nil { token, err = dec.Token()
if err != nil {
return result, err return result, err
} else { }
d, ok := token.(json.Delim) d, ok = token.(json.Delim)
if !ok || d != '}' { if !ok || d != '}' {
return result, fmt.Errorf("failed to read '}', read: %v", token) return result, fmt.Errorf("failed to read '}', read: %v", token)
}
} }
// make sure nothing else trailing // make sure nothing else trailing

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

@@ -27,11 +27,11 @@ func AnalyticsRowFromJson(data io.Reader) *AnalyticsRow {
} }
func (ar AnalyticsRows) ToJson() string { func (ar AnalyticsRows) ToJson() string {
if b, err := json.Marshal(ar); err != nil { b, err := json.Marshal(ar)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func AnalyticsRowsFromJson(data io.Reader) AnalyticsRows { func AnalyticsRowsFromJson(data io.Reader) AnalyticsRows {

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

@@ -14,17 +14,16 @@ func (o Audits) Etag() string {
if len(o) > 0 { if len(o) > 0 {
// the first in the list is always the most current // the first in the list is always the most current
return Etag(o[0].CreateAt) return Etag(o[0].CreateAt)
} else {
return ""
} }
return ""
} }
func (o Audits) ToJson() string { func (o Audits) ToJson() string {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func AuditsFromJson(data io.Reader) Audits { func AuditsFromJson(data io.Reader) Audits {

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

@@ -341,9 +341,8 @@ func (o *Channel) GetOtherUserIdForDM(userId string) string {
func GetDMNameFromIds(userId1, userId2 string) string { func GetDMNameFromIds(userId1, userId2 string) string {
if userId1 > userId2 { if userId1 > userId2 {
return userId2 + "__" + userId1 return userId2 + "__" + userId1
} else {
return userId1 + "__" + userId2
} }
return userId1 + "__" + userId2
} }
func GetGroupDisplayNameFromUsers(users []*User, truncate bool) string { func GetGroupDisplayNameFromUsers(users []*User, truncate bool) string {

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

@@ -11,11 +11,11 @@ import (
type ChannelList []*Channel type ChannelList []*Channel
func (o *ChannelList) ToJson() string { func (o *ChannelList) ToJson() string {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func (o *ChannelList) Etag() string { func (o *ChannelList) Etag() string {
@@ -55,11 +55,11 @@ func ChannelSliceFromJson(data io.Reader) []*Channel {
type ChannelListWithTeamData []*ChannelWithTeamData type ChannelListWithTeamData []*ChannelWithTeamData
func (o *ChannelListWithTeamData) ToJson() string { func (o *ChannelListWithTeamData) ToJson() string {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func (o *ChannelListWithTeamData) Etag() string { func (o *ChannelListWithTeamData) Etag() string {

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

@@ -65,11 +65,11 @@ type ChannelMemberForExport struct {
} }
func (o *ChannelMembers) ToJson() string { func (o *ChannelMembers) ToJson() string {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func (o *ChannelUnread) ToJson() string { func (o *ChannelUnread) ToJson() string {

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

@@ -97,19 +97,19 @@ func (o SidebarCategoryWithChannels) ToJson() []byte {
} }
func SidebarCategoriesWithChannelsToJson(o []*SidebarCategoryWithChannels) []byte { func SidebarCategoriesWithChannelsToJson(o []*SidebarCategoryWithChannels) []byte {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return []byte("[]") return []byte("[]")
} else {
return b
} }
return b
} }
func (o OrderedSidebarCategories) ToJson() []byte { func (o OrderedSidebarCategories) ToJson() []byte {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return []byte("[]") return []byte("[]")
} else {
return b
} }
return b
} }
var categoryIdPattern = regexp.MustCompile("(favorites|channels|direct_messages)_[a-z0-9]{26}_[a-z0-9]{26}") var categoryIdPattern = regexp.MustCompile("(favorites|channels|direct_messages)_[a-z0-9]{26}_[a-z0-9]{26}")

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

@@ -94,9 +94,8 @@ func (c *Client4) boolString(value bool) string {
if value { if value {
return "true" return "true"
} else {
return "false"
} }
return "false"
} }
func closeBody(r *http.Response) { 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. // 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) { func (c *Client4) GetPostsAroundLastUnread(userId, channelId string, limitBefore, limitAfter int) (*PostList, *Response) {
query := fmt.Sprintf("?limit_before=%v&limit_after=%v", limitBefore, limitAfter) 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) 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. // SearchPosts returns any posts with matching terms string.

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

@@ -38,7 +38,6 @@ func ClusterInfosFromJson(data io.Reader) []*ClusterInfo {
var objmap []*ClusterInfo var objmap []*ClusterInfo
if err := decoder.Decode(&objmap); err != nil { if err := decoder.Decode(&objmap); err != nil {
return make([]*ClusterInfo, 0) return make([]*ClusterInfo, 0)
} else {
return objmap
} }
return objmap
} }

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

@@ -110,11 +110,11 @@ func ComplianceFromJson(data io.Reader) *Compliance {
} }
func (c Compliances) ToJson() string { func (c Compliances) ToJson() string {
if b, err := json.Marshal(c); err != nil { b, err := json.Marshal(c)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func CompliancesFromJson(data io.Reader) Compliances { func CompliancesFromJson(data io.Reader) Compliances {

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

@@ -73,10 +73,8 @@ func CompliancePostHeader() []string {
func cleanComplianceStrings(in string) string { func cleanComplianceStrings(in string) string {
if matched, _ := regexp.MatchString("^\\s*(=|\\+|\\-)", in); matched { if matched, _ := regexp.MatchString("^\\s*(=|\\+|\\-)", in); matched {
return "'" + in return "'" + in
} else {
return in
} }
return in
} }
func (cp *CompliancePost) Row() []string { func (cp *CompliancePost) Row() []string {

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

@@ -72,9 +72,8 @@ func FileInfoFromJson(data io.Reader) *FileInfo {
var fi FileInfo var fi FileInfo
if err := decoder.Decode(&fi); err != nil { if err := decoder.Decode(&fi); err != nil {
return nil return nil
} else {
return &fi
} }
return &fi
} }
func FileInfosToJson(infos []*FileInfo) string { func FileInfosToJson(infos []*FileInfo) string {
@@ -88,9 +87,8 @@ func FileInfosFromJson(data io.Reader) []*FileInfo {
var infos []*FileInfo var infos []*FileInfo
if err := decoder.Decode(&infos); err != nil { if err := decoder.Decode(&infos); err != nil {
return nil return nil
} else {
return infos
} }
return infos
} }
func (fi *FileInfo) PreSave() { func (fi *FileInfo) PreSave() {
@@ -196,13 +194,13 @@ func GetInfoForBytes(name string, data io.ReadSeeker, size int) (*FileInfo, *App
if info.MimeType == "image/gif" { if info.MimeType == "image/gif" {
// Just show the gif itself instead of a preview image for animated gifs // Just show the gif itself instead of a preview image for animated gifs
data.Seek(0, io.SeekStart) 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 // Still return the rest of the info even though it doesn't appear to be an actual gif
info.HasPreviewImage = true info.HasPreviewImage = true
return info, NewAppError("GetInfoForBytes", "model.file_info.get.gif.app_error", nil, err.Error(), http.StatusBadRequest) 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 { } else {
info.HasPreviewImage = true info.HasPreviewImage = true
} }

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

@@ -70,9 +70,8 @@ func (glu *GitLabUser) ToJson() string {
b, err := json.Marshal(glu) b, err := json.Marshal(glu)
if err != nil { if err != nil {
return "" return ""
} else {
return string(b)
} }
return string(b)
} }
func (glu *GitLabUser) IsValid() error { func (glu *GitLabUser) IsValid() error {

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

@@ -182,9 +182,8 @@ func decodeIncomingWebhookRequest(by []byte) (*IncomingWebhookRequest, error) {
err := decoder.Decode(&o) err := decoder.Decode(&o)
if err == nil { if err == nil {
return &o, nil return &o, nil
} else {
return nil, err
} }
return nil, err
} }
func IncomingWebhookRequestFromJson(data io.Reader) (*IncomingWebhookRequest, *AppError) { func IncomingWebhookRequestFromJson(data io.Reader) (*IncomingWebhookRequest, *AppError) {
@@ -211,7 +210,6 @@ func (o *IncomingWebhookRequest) ToJson() string {
b, err := json.Marshal(o) b, err := json.Marshal(o)
if err != nil { if err != nil {
return "" return ""
} else {
return string(b)
} }
return string(b)
} }

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

@@ -96,9 +96,8 @@ func JobFromJson(data io.Reader) *Job {
var job Job var job Job
if err := json.NewDecoder(data).Decode(&job); err == nil { if err := json.NewDecoder(data).Decode(&job); err == nil {
return &job return &job
} else {
return nil
} }
return nil
} }
func JobsToJson(jobs []*Job) string { func JobsToJson(jobs []*Job) string {
@@ -110,9 +109,8 @@ func JobsFromJson(data io.Reader) []*Job {
var jobs []*Job var jobs []*Job
if err := json.NewDecoder(data).Decode(&jobs); err == nil { if err := json.NewDecoder(data).Decode(&jobs); err == nil {
return jobs return jobs
} else {
return nil
} }
return nil
} }
func (j *Job) DataToJson() string { func (j *Job) DataToJson() string {

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

@@ -58,9 +58,8 @@ func (o *PostList) ToJson() string {
b, err := json.Marshal(&copy) b, err := json.Marshal(&copy)
if err != nil { if err != nil {
return "" return ""
} else {
return string(b)
} }
return string(b)
} }
func (o *PostList) MakeNonNil() { func (o *PostList) MakeNonNil() {

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

@@ -28,9 +28,8 @@ func (o *PostSearchResults) ToJson() string {
b, err := json.Marshal(&copy) b, err := json.Marshal(&copy)
if err != nil { if err != nil {
return "" return ""
} else {
return string(b)
} }
return string(b)
} }
func PostSearchResultsFromJson(data io.Reader) *PostSearchResults { func PostSearchResultsFromJson(data io.Reader) *PostSearchResults {

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

@@ -19,9 +19,8 @@ func PreferencesFromJson(data io.Reader) (Preferences, error) {
decoder := json.NewDecoder(data) decoder := json.NewDecoder(data)
var o Preferences var o Preferences
err := decoder.Decode(&o) err := decoder.Decode(&o)
if err == nil { if err != nil {
return o, nil
} else {
return nil, err return nil, err
} }
return o, nil
} }

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

@@ -48,7 +48,6 @@ func PushResponseFromJson(data io.Reader) PushResponse {
var objmap PushResponse var objmap PushResponse
if err := decoder.Decode(&objmap); err != nil { if err := decoder.Decode(&objmap); err != nil {
return make(map[string]string) return make(map[string]string)
} else {
return objmap
} }
return objmap
} }

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

@@ -27,9 +27,8 @@ func ReactionFromJson(data io.Reader) *Reaction {
if err := json.NewDecoder(data).Decode(&o); err != nil { if err := json.NewDecoder(data).Decode(&o); err != nil {
return nil return nil
} else {
return &o
} }
return &o
} }
func ReactionsToJson(o []*Reaction) string { func ReactionsToJson(o []*Reaction) string {
@@ -48,9 +47,8 @@ func MapPostIdToReactionsFromJson(data io.Reader) map[string][]*Reaction {
var objmap map[string][]*Reaction var objmap map[string][]*Reaction
if err := decoder.Decode(&objmap); err != nil { if err := decoder.Decode(&objmap); err != nil {
return make(map[string][]*Reaction) return make(map[string][]*Reaction)
} else {
return objmap
} }
return objmap
} }
func ReactionsFromJson(data io.Reader) []*Reaction { 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 { if err := json.NewDecoder(data).Decode(&o); err != nil {
return nil return nil
} else {
return o
} }
return o
} }
func (o *Reaction) IsValid() *AppError { func (o *Reaction) IsValid() *AppError {

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

@@ -101,9 +101,8 @@ func SchemesFromJson(data io.Reader) []*Scheme {
var schemes []*Scheme var schemes []*Scheme
if err := json.NewDecoder(data).Decode(&schemes); err == nil { if err := json.NewDecoder(data).Decode(&schemes); err == nil {
return schemes return schemes
} else {
return nil
} }
return nil
} }
func (scheme *Scheme) IsValid() bool { func (scheme *Scheme) IsValid() bool {

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

@@ -27,11 +27,11 @@ func SecurityBulletinFromJson(data io.Reader) *SecurityBulletin {
} }
func (sb SecurityBulletins) ToJson() string { func (sb SecurityBulletins) ToJson() string {
if b, err := json.Marshal(sb); err != nil { b, err := json.Marshal(sb)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func SecurityBulletinsFromJson(data io.Reader) SecurityBulletins { func SecurityBulletinsFromJson(data io.Reader) SecurityBulletins {

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

@@ -217,11 +217,11 @@ func (s *Session) GetCSRF() string {
} }
func SessionsToJson(o []*Session) string { func SessionsToJson(o []*Session) string {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func SessionsFromJson(data io.Reader) []*Session { func SessionsFromJson(data io.Reader) []*Session {

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

@@ -184,9 +184,8 @@ func WarnMetricStatusFromJson(data io.Reader) *WarnMetricStatus {
var o WarnMetricStatus var o WarnMetricStatus
if err := json.NewDecoder(data).Decode(&o); err != nil { if err := json.NewDecoder(data).Decode(&o); err != nil {
return nil return nil
} else {
return &o
} }
return &o
} }
func MapWarnMetricStatusToJson(o map[string]*WarnMetricStatus) string { func MapWarnMetricStatusToJson(o map[string]*WarnMetricStatus) string {

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

@@ -98,11 +98,11 @@ func EmailInviteWithErrorToEmails(o []*EmailInviteWithError) []string {
} }
func EmailInviteWithErrorToJson(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 "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func EmailInviteWithErrorToString(o *EmailInviteWithError) string { func EmailInviteWithErrorToString(o *EmailInviteWithError) string {
@@ -120,11 +120,11 @@ func TeamMembersWithErrorToTeamMembers(o []*TeamMemberWithError) []*TeamMember {
} }
func TeamMembersWithErrorToJson(o []*TeamMemberWithError) string { func TeamMembersWithErrorToJson(o []*TeamMemberWithError) string {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func TeamMemberWithErrorToString(o *TeamMemberWithError) string { func TeamMemberWithErrorToString(o *TeamMemberWithError) string {
@@ -138,11 +138,11 @@ func TeamMembersWithErrorFromJson(data io.Reader) []*TeamMemberWithError {
} }
func TeamMembersToJson(o []*TeamMember) string { func TeamMembersToJson(o []*TeamMember) string {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func TeamMembersFromJson(data io.Reader) []*TeamMember { func TeamMembersFromJson(data io.Reader) []*TeamMember {
@@ -152,11 +152,11 @@ func TeamMembersFromJson(data io.Reader) []*TeamMember {
} }
func TeamsUnreadToJson(o []*TeamUnread) string { func TeamsUnreadToJson(o []*TeamUnread) string {
if b, err := json.Marshal(o); err != nil { b, err := json.Marshal(o)
if err != nil {
return "[]" return "[]"
} else {
return string(b)
} }
return string(b)
} }
func TeamsUnreadFromJson(data io.Reader) []*TeamUnread { func TeamsUnreadFromJson(data io.Reader) []*TeamUnread {

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

@@ -31,11 +31,10 @@ func UserAutocompleteFromJson(data io.Reader) *UserAutocomplete {
decoder := json.NewDecoder(data) decoder := json.NewDecoder(data)
autocomplete := new(UserAutocomplete) autocomplete := new(UserAutocomplete)
err := decoder.Decode(&autocomplete) err := decoder.Decode(&autocomplete)
if err == nil { if err != nil {
return autocomplete
} else {
return nil return nil
} }
return autocomplete
} }
func (o *UserAutocompleteInChannel) ToJson() string { func (o *UserAutocompleteInChannel) ToJson() string {

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

@@ -113,9 +113,8 @@ func (er *AppError) Translate(T goi18n.TranslateFunc) {
func (er *AppError) SystemMessage(T goi18n.TranslateFunc) string { func (er *AppError) SystemMessage(T goi18n.TranslateFunc) string {
if er.params == nil { if er.params == nil {
return T(er.Id) return T(er.Id)
} else {
return T(er.Id, er.params)
} }
return T(er.Id, er.params)
} }
func (er *AppError) ToJson() string { func (er *AppError) ToJson() string {
@@ -136,11 +135,10 @@ func AppErrorFromJson(data io.Reader) *AppError {
decoder := json.NewDecoder(strings.NewReader(str)) decoder := json.NewDecoder(strings.NewReader(str))
var er AppError var er AppError
err := decoder.Decode(&er) err := decoder.Decode(&er)
if err == nil { if err != nil {
return &er
} else {
return NewAppError("AppErrorFromJson", "model.utils.decode_json.app_error", nil, "body: "+str, http.StatusInternalServerError) 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 { 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 var objmap map[string]string
if err := decoder.Decode(&objmap); err != nil { if err := decoder.Decode(&objmap); err != nil {
return make(map[string]string) return make(map[string]string)
} else {
return objmap
} }
return objmap
} }
// MapFromJson will decode the key/value pair map // 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 var objmap map[string]bool
if err := decoder.Decode(&objmap); err != nil { if err := decoder.Decode(&objmap); err != nil {
return make(map[string]bool) return make(map[string]bool)
} else {
return objmap
} }
return objmap
} }
func ArrayToJson(objmap []string) string { func ArrayToJson(objmap []string) string {
@@ -286,9 +282,8 @@ func ArrayFromJson(data io.Reader) []string {
var objmap []string var objmap []string
if err := decoder.Decode(&objmap); err != nil { if err := decoder.Decode(&objmap); err != nil {
return make([]string, 0) return make([]string, 0)
} else {
return objmap
} }
return objmap
} }
func ArrayFromInterface(data interface{}) []string { func ArrayFromInterface(data interface{}) []string {
@@ -319,9 +314,8 @@ func StringInterfaceFromJson(data io.Reader) map[string]interface{} {
var objmap map[string]interface{} var objmap map[string]interface{}
if err := decoder.Decode(&objmap); err != nil { if err := decoder.Decode(&objmap); err != nil {
return make(map[string]interface{}) return make(map[string]interface{})
} else {
return objmap
} }
return objmap
} }
func StringToJson(s string) string { func StringToJson(s string) string {
@@ -335,9 +329,8 @@ func StringFromJson(data io.Reader) string {
var s string var s string
if err := decoder.Decode(&s); err != nil { if err := decoder.Decode(&s); err != nil {
return "" return ""
} else {
return s
} }
return s
} }
func GetServerIpAddress(iface string) string { func GetServerIpAddress(iface string) string {
@@ -504,9 +497,8 @@ func GetImageMimeType(ext string) string {
ext = strings.ToLower(ext) ext = strings.ToLower(ext)
if len(IMAGE_MIME_TYPES[ext]) == 0 { if len(IMAGE_MIME_TYPES[ext]) == 0 {
return "image" return "image"
} else {
return IMAGE_MIME_TYPES[ext]
} }
return IMAGE_MIME_TYPES[ext]
} }
func ClearMentionTags(post string) string { func ClearMentionTags(post string) string {

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

@@ -148,9 +148,8 @@ func IsCurrentVersion(versionToCheck string) bool {
if toCheckMajor == currentMajor && toCheckMinor == currentMinor { if toCheckMajor == currentMajor && toCheckMinor == currentMinor {
return true return true
} else {
return false
} }
return false
} }
func IsPreviousVersionsSupported(versionToCheck string) bool { func IsPreviousVersionsSupported(versionToCheck string) bool {

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

@@ -171,11 +171,11 @@ func (b *S3FileBackend) ReadFile(path string) ([]byte, error) {
} }
defer minioObject.Close() 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) 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) { func (b *S3FileBackend) FileExists(path string) (bool, error) {

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

@@ -288,12 +288,11 @@ func (worker *BleveIndexerWorker) IndexPostsBatch(progress IndexingProgress) (In
if err != nil { if err != nil {
if tries >= 10 { if tries >= 10 {
return progress, model.NewAppError("IndexPostsBatch", "app.post.get_posts_batch_for_indexing.get.app_error", nil, err.Error(), http.StatusInternalServerError) 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++ 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 usersBatch, err := worker.jobServer.Store.User().GetUsersBatchForIndexing(progress.LastEntityTime, endTime, BATCH_SIZE); err != nil {
if tries >= 10 { if tries >= 10 {
return progress, model.NewAppError("IndexUsersBatch", "app.user.get_users_batch_for_indexing.get_users.app_error", nil, err.Error(), http.StatusInternalServerError) 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 { } else {
users = usersBatch users = usersBatch
} }

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

@@ -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 { 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 { if s.metrics != nil {
s.metrics.IncrementMemCacheHitCounter(cache.Name()) s.metrics.IncrementMemCacheHitCounter(cache.Name())
} }
return nil 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) { func (s *LocalCacheStore) doClearCacheCluster(cache cache.Cache) {

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

@@ -120,9 +120,8 @@ func (ps SqlPluginStore) CompareAndSet(kv *model.PluginKeyValue, oldValue []byte
// need to return it. // need to return it.
if IsUniqueConstraintError(err, []string{"PRIMARY", "PluginId", "Key", "PKey", "pkey"}) { if IsUniqueConstraintError(err, []string{"PRIMARY", "PluginId", "Key", "PKey", "pkey"}) {
return false, nil return false, nil
} else {
return false, errors.Wrap(err, "failed to insert PluginKeyValue")
} }
return false, errors.Wrap(err, "failed to insert PluginKeyValue")
} }
} else { } else {
currentTime := model.GetMillis() currentTime := model.GetMillis()

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

@@ -292,16 +292,16 @@ func (me SqlSessionStore) Cleanup(expiryTime int64, batchSize int64) {
var rowsAffected int64 = 1 var rowsAffected int64 = 1
for rowsAffected > 0 { 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)) mlog.Error("Unable to cleanup session store.", mlog.Err(err))
return 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) time.Sleep(SESSIONS_CLEANUP_DELAY_MILLISECONDS * time.Millisecond)

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

@@ -518,9 +518,8 @@ func applyMultiRoleFilters(query sq.SelectBuilder, systemRoles []string, teamRol
if len(sqOr) > 0 { if len(sqOr) > 0 {
return query.Where(sqOr) return query.Where(sqOr)
} else {
return query
} }
return query
} }
func applyChannelGroupConstrainedFilter(query sq.SelectBuilder, channelId string) sq.SelectBuilder { func applyChannelGroupConstrainedFilter(query sq.SelectBuilder, channelId string) sq.SelectBuilder {

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

@@ -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) ok, err := ss.Plugin().SetWithOptions(kv.PluginId, kv.Key, kv.Value, options)
if !ok { if !ok {
return nil, err return nil, err
} else {
return kv, err
} }
return kv, err
}) })
}) })
} }

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

@@ -29,9 +29,8 @@ const (
func getEnv(name, defaultValue string) string { func getEnv(name, defaultValue string) string {
if value := os.Getenv(name); value != "" { if value := os.Getenv(name); value != "" {
return value return value
} else {
return defaultValue
} }
return defaultValue
} }
func log(message string) { func log(message string) {

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

@@ -43,11 +43,11 @@ func NewHTMLTemplateWatcher(directory string) (*HTMLTemplateWatcher, error) {
return nil, err 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 return nil, err
} else {
ret.templates.Store(htmlTemplates)
} }
ret.templates.Store(htmlTemplates)
go func() { go func() {
defer close(ret.stopped) defer close(ret.stopped)

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

@@ -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)) mlog.Info("License key has not been uploaded. Loading license key from disk at", mlog.String("filename", fileName))
licenseBytes := GetLicenseFileFromDisk(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)) mlog.Error("Found license key at %v but it appears to be invalid.", mlog.String("filename", fileName))
return nil, nil return nil, nil
} else {
return model.LicenseFromJson(strings.NewReader(licenseStr)), licenseBytes
} }
return model.LicenseFromJson(strings.NewReader(licenseStr)), licenseBytes
} }
func GetLicenseFileFromDisk(fileName string) []byte { func GetLicenseFileFromDisk(fileName string) []byte {
@@ -116,9 +116,8 @@ func GetLicenseFileLocation(fileLocation string) string {
if fileLocation == "" { if fileLocation == "" {
configDir, _ := fileutils.FindDir("config") configDir, _ := fileutils.FindDir("config")
return filepath.Join(configDir, "mattermost.mattermost-license") return filepath.Join(configDir, "mattermost.mattermost-license")
} else {
return fileLocation
} }
return fileLocation
} }
func GetClientLicense(l *model.License) map[string]string { func GetClientLicense(l *model.License) map[string]string {

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

@@ -406,10 +406,9 @@ func (p *inlineParser) lookForLinkOrImage() {
} }
p.delimiterStack.Remove(element) p.delimiterStack.Remove(element)
return return
} else {
p.delimiterStack.Remove(element)
break
} }
p.delimiterStack.Remove(element)
break
} }
absPos := relativeToAbsolutePosition(p.ranges, p.position) absPos := relativeToAbsolutePosition(p.ranges, p.position)
p.inlines = append(p.inlines, &Text{ p.inlines = append(p.inlines, &Text{

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

@@ -120,13 +120,13 @@ func UpdateAssetsSubpathInDir(subpath, directory string) error {
// Rewrite the manifest.json and *.css references to `/static/*` (or a previously rewritten subpath). // 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 { err = filepath.Walk(staticDir, func(walkPath string, info os.FileInfo, err error) error {
if filepath.Base(walkPath) == "manifest.json" || filepath.Ext(walkPath) == ".css" { 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) return errors.Wrapf(err, "failed to open %s", walkPath)
} else { }
new := strings.Replace(string(old), pathToReplace, newPath, -1) new := strings.Replace(string(old), pathToReplace, newPath, -1)
if err = ioutil.WriteFile(walkPath, []byte(new), 0); err != nil { if err = ioutil.WriteFile(walkPath, []byte(new), 0); err != nil {
return errors.Wrapf(err, "failed to update %s with subpath %s", walkPath, subpath) return errors.Wrapf(err, "failed to update %s with subpath %s", walkPath, subpath)
}
} }
} }

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

@@ -28,9 +28,8 @@ func ReadTestFile(name string) ([]byte, error) {
data := &bytes.Buffer{} data := &bytes.Buffer{}
if _, err := io.Copy(data, file); err != nil { if _, err := io.Copy(data, file); err != nil {
return nil, err 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. // GetInterface returns the best match of an interface that might be listening on a given port.

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

@@ -56,13 +56,13 @@ func loginWithSaml(c *Context, w http.ResponseWriter, r *http.Request) {
relayState = b64.StdEncoding.EncodeToString([]byte(model.MapToJson(relayProps))) 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 c.Err = err
return 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) { 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) relayProps := make(map[string]string)
if len(relayState) > 0 { if len(relayState) > 0 {
stateStr := "" 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) c.Err = model.NewAppError("completeSaml", "api.user.authorize_oauth_user.invalid_state.app_error", nil, err.Error(), http.StatusFound)
return return
} else {
stateStr = string(b)
} }
stateStr = string(b)
relayProps = model.MapFromJson(strings.NewReader(stateStr)) relayProps = model.MapFromJson(strings.NewReader(stateStr))
} }