* add /code command

* return an error for empty /code message
Этот коммит содержится в:
Chris
2017-07-24 11:55:37 -07:00
коммит произвёл enahum
родитель 72355ba2bf
Коммит 345dd400bb
3 изменённых файлов: 86 добавлений и 0 удалений

44
app/command_code.go Обычный файл
Просмотреть файл

@@ -0,0 +1,44 @@
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package app
import (
"strings"
"github.com/mattermost/platform/model"
goi18n "github.com/nicksnyder/go-i18n/i18n"
)
type CodeProvider struct {
}
const (
CMD_CODE = "code"
)
func init() {
RegisterCommandProvider(&CodeProvider{})
}
func (me *CodeProvider) GetTrigger() string {
return CMD_CODE
}
func (me *CodeProvider) GetCommand(T goi18n.TranslateFunc) *model.Command {
return &model.Command{
Trigger: CMD_CODE,
AutoComplete: true,
AutoCompleteDesc: T("api.command_code.desc"),
AutoCompleteHint: T("api.command_code.hint"),
DisplayName: T("api.command_code.name"),
}
}
func (me *CodeProvider) DoCommand(args *model.CommandArgs, message string) *model.CommandResponse {
if len(message) == 0 {
return &model.CommandResponse{Text: args.T("api.command_code.message.app_error"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}
}
rmsg := " " + strings.Join(strings.Split(message, "\n"), "\n ")
return &model.CommandResponse{ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, Text: rmsg}
}

26
app/command_code_test.go Обычный файл
Просмотреть файл

@@ -0,0 +1,26 @@
package app
import (
"testing"
"github.com/mattermost/platform/model"
)
func TestCodeProviderDoCommand(t *testing.T) {
cp := CodeProvider{}
args := &model.CommandArgs{
T: func(s string, args ...interface{}) string { return s },
}
for msg, expected := range map[string]string{
"": "api.command_code.message.app_error",
"foo": " foo",
"foo\nbar": " foo\n bar",
"foo\nbar\n": " foo\n bar\n ",
} {
actual := cp.DoCommand(args, msg).Text
if actual != expected {
t.Errorf("expected `%v`, got `%v`", expected, actual)
}
}
}

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

@@ -919,6 +919,22 @@
"id": "api.command_shortcuts.nav.unread_prev",
"translation": "ALT+SHIFT+UP: Previous channel or direct message in left hand sidebar with unread messages\n"
},
{
"id": "api.command_code.desc",
"translation": "Display text as a code block"
},
{
"id": "api.command_code.hint",
"translation": "[text]"
},
{
"id": "api.command_code.name",
"translation": "code"
},
{
"id": "api.command_code.message.app_error",
"translation": "A message must be provided with the /code command."
},
{
"id": "api.command_shrug.desc",
"translation": "Adds ¯\\_(ツ)_/¯ to your message"