Skip to content

Commit

Permalink
Pass Slash Command to getSlackMessage
Browse files Browse the repository at this point in the history
  • Loading branch information
ngs committed Mar 27, 2018
1 parent 7186b12 commit f4531c2
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 12 deletions.
2 changes: 1 addition & 1 deletion app/routes.go
Expand Up @@ -135,7 +135,7 @@ func (app *App) handleSlashCommand(w http.ResponseWriter, r *http.Request) {
ctx.UserID = s.UserID

go func() {
params, _ := ctx.getSlackMessage(s.TeamID, s.Text)
params, _ := ctx.getSlackMessage(s)
b, _ := json.Marshal(params)
http.Post(s.ResponseURL, "application/json", bytes.NewBuffer(b))
}()
Expand Down
4 changes: 3 additions & 1 deletion app/slack.go
Expand Up @@ -150,7 +150,9 @@ func (ctx *Context) getChannelSelectSlackMessage() (*slack.Msg, error) {
}, nil
}

func (ctx *Context) getSlackMessage(team, text string) (*slack.Msg, error) {
func (ctx *Context) getSlackMessage(command slack.SlashCommand) (*slack.Msg, error) {
text := command.Text
team := command.TeamID
client := ctx.createTimeTableClient()
if client.HTTPClient == nil || text == "login" {
return ctx.getLoginSlackMessage(team)
Expand Down
20 changes: 10 additions & 10 deletions app/slack_test.go
Expand Up @@ -167,7 +167,7 @@ func TestGetSlackMessage(t *testing.T) {
req, _ := http.NewRequest(http.MethodPost, "https://example.com/hooks/slash", bytes.NewBufferString(""))
ctx := app.createContext(req)
ctx.UserID = "BAZ"
msg, err := ctx.getSlackMessage("T12345678", "")
msg, err := ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678"})
for _, test := range []Test{
{true, err == nil},
{"TeamSpirit で認証を行って、再度 `/ts` コマンドを実行してください :bow:", msg.Attachments[0].Text},
Expand All @@ -181,7 +181,7 @@ func TestGetSlackMessage(t *testing.T) {
TokenType: "Bearer",
})
ctx.TimeTableClient = nil
msg, err = ctx.getSlackMessage("T12345678", "")
msg, err = ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678"})
for _, test := range []Test{
{true, err == nil},
{"TeamSpirit で認証を行って、再度 `/ts` コマンドを実行してください :bow:", msg.Attachments[0].Text},
Expand All @@ -193,7 +193,7 @@ func TestGetSlackMessage(t *testing.T) {
{null.IntFrom(10 * 60), null.IntFrom(19 * 60), 1},
}, nil)
ctx.TimeTableClient = nil
msg, err = ctx.getSlackMessage("T12345678", "channel")
msg, err = ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678", Text: "channel"})
for _, test := range []Test{
{true, err == nil},
{"Slack で認証を行って、再度 `/ts channel` コマンドを実行してください :bow:", msg.Attachments[0].Text},
Expand All @@ -206,7 +206,7 @@ func TestGetSlackMessage(t *testing.T) {
}, nil)
ctx.TimeTableClient = nil
ctx.setSlackAccessToken("foo")
msg, err = ctx.getSlackMessage("T12345678", "channel")
msg, err = ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678", Text: "channel"})
for _, test := range []Test{
{true, err == nil},
{"打刻時に通知するチャネルを選択して下さい", msg.Attachments[0].Text},
Expand All @@ -217,7 +217,7 @@ func TestGetSlackMessage(t *testing.T) {
{null.IntFrom(10 * 60), null.IntFrom(19 * 60), 1},
}, nil)
ctx.TimeTableClient = nil
msg, err = ctx.getSlackMessage("T12345678", "")
msg, err = ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678"})
for _, test := range []Test{
{true, err == nil},
{"既に退勤済です。打刻修正は <https://teamspirit-1234.cloudforce.test|TeamSpirit> で行なってください。", msg.Text},
Expand All @@ -230,7 +230,7 @@ func TestGetSlackMessage(t *testing.T) {
{null.IntFrom(10 * 60), null.IntFromPtr(nil), 21},
}, &[]bool{false}[0])
ctx.TimeTableClient = nil
msg, err = ctx.getSlackMessage("T12345678", "")
msg, err = ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678"})
for _, test := range []Test{
{true, err == nil},
{"休憩を終了する", msg.Attachments[0].Actions[0].Text},
Expand All @@ -244,7 +244,7 @@ func TestGetSlackMessage(t *testing.T) {
{null.IntFrom(10 * 60), null.IntFromPtr(nil), 21},
}, &[]bool{false}[0])
ctx.TimeTableClient = nil
msg, err = ctx.getSlackMessage("T12345678", "")
msg, err = ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678"})
for _, test := range []Test{
{true, err == nil},
{"休憩を終了する", msg.Attachments[0].Actions[0].Text},
Expand All @@ -258,7 +258,7 @@ func TestGetSlackMessage(t *testing.T) {
{null.IntFrom(10 * 60), null.IntFrom(11 * 60), 21},
}, &[]bool{false}[0])
ctx.TimeTableClient = nil
msg, err = ctx.getSlackMessage("T12345678", "")
msg, err = ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678"})
for _, test := range []Test{
{true, err == nil},
{"休憩を開始する", msg.Attachments[0].Actions[0].Text},
Expand All @@ -274,7 +274,7 @@ func TestGetSlackMessage(t *testing.T) {
{null.IntFrom(10 * 60), null.IntFrom(11 * 60), 21},
}, &[]bool{false}[0])
ctx.TimeTableClient = nil
msg, err = ctx.getSlackMessage("T12345678", "")
msg, err = ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678"})
for _, test := range []Test{
{true, err == nil},
{"出勤する", msg.Attachments[0].Actions[0].Text},
Expand All @@ -285,7 +285,7 @@ func TestGetSlackMessage(t *testing.T) {
}
setupTimeTableGocks([]timeTableItem{}, &[]bool{true}[0])
ctx.TimeTableClient = nil
msg, err = ctx.getSlackMessage("T12345678", "")
msg, err = ctx.getSlackMessage(slack.SlashCommand{TeamID: "T12345678"})
for _, test := range []Test{
{true, err == nil},
{"本日は休日です :sunny:", msg.Text},
Expand Down

0 comments on commit f4531c2

Please sign in to comment.