mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
MM-31064: Simplify indentation (#16565)
* 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>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
18
app/emoji.go
18
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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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}")
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
14
web/saml.go
14
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))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user