github.com/haalcala/mattermost-server-change-repo@v0.0.0-20210713015153-16753fbeee5f/app/slashcommands/command_code.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package slashcommands 5 6 import ( 7 "strings" 8 9 goi18n "github.com/mattermost/go-i18n/i18n" 10 11 "github.com/mattermost/mattermost-server/v5/app" 12 "github.com/mattermost/mattermost-server/v5/model" 13 ) 14 15 type CodeProvider struct { 16 } 17 18 const ( 19 CmdCode = "code" 20 ) 21 22 func init() { 23 app.RegisterCommandProvider(&CodeProvider{}) 24 } 25 26 func (*CodeProvider) GetTrigger() string { 27 return CmdCode 28 } 29 30 func (*CodeProvider) GetCommand(a *app.App, T goi18n.TranslateFunc) *model.Command { 31 return &model.Command{ 32 Trigger: CmdCode, 33 AutoComplete: true, 34 AutoCompleteDesc: T("api.command_code.desc"), 35 AutoCompleteHint: T("api.command_code.hint"), 36 DisplayName: T("api.command_code.name"), 37 } 38 } 39 40 func (*CodeProvider) DoCommand(a *app.App, args *model.CommandArgs, message string) *model.CommandResponse { 41 if message == "" { 42 return &model.CommandResponse{Text: args.T("api.command_code.message.app_error"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} 43 } 44 rmsg := " " + strings.Join(strings.Split(message, "\n"), "\n ") 45 return &model.CommandResponse{ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, Text: rmsg, SkipSlackParsing: true} 46 }