Skip to content

Commit 62f1300

Browse files
committed
refactor: ease the response logic for slack
1 parent a8da795 commit 62f1300

1 file changed

Lines changed: 24 additions & 23 deletions

File tree

internal/app/gitops-commit/slackhttp/handler.go

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,43 @@ func (s *server) handleSlackCommand(registry *NamedRepositoryRegistry) func(http
1414
text := strings.Split(sl.Text, " ")
1515

1616
if len(text) < 3 || len(text) > 3 {
17-
sendEphemeralMsg("Incorrect usage, expected /gitops-commit [command] [name] [tag]", w)
17+
respondSlack("Incorrect usage, expected /gitops-commit [command] [name] [tag]", slack.ResponseTypeEphemeral, w)
1818

1919
return
2020
}
2121

22-
switch text[0] {
22+
command := text[0]
23+
24+
switch command {
2325
case "deploy":
2426
deploy(s, w, registry, text[1], text[2])
2527

2628
return
29+
default:
30+
respondSlack(
31+
fmt.Sprintf("Unknown command %s, expected /gitops-commit [command] [name] [tag]", command),
32+
slack.ResponseTypeEphemeral,
33+
w,
34+
)
2735
}
2836
}
2937
}
3038

3139
func deploy(s *server, w http.ResponseWriter, registry *NamedRepositoryRegistry, name string, version string) {
32-
3340
r, err := registry.findNamedRepository(name)
3441

3542
if err != nil {
36-
sendEphemeralMsg(fmt.Sprintf("Unknown named repository, cannot handle \"%s\", availabe options (%s)", name, registry.getNamesFlattened()), w)
43+
respondSlack(
44+
fmt.Sprintf("Unknown named repository, cannot handle \"%s\", availabe options (%s)", name, registry.getNamesFlattened()),
45+
slack.ResponseTypeEphemeral,
46+
w,
47+
)
3748

3849
return
3950
}
4051

4152
if len(version) != 7 {
42-
sendEphemeralMsg(fmt.Sprintf("version does not look semver? %s", version), w)
53+
respondSlack(fmt.Sprintf("version does not look semver? %s", version), slack.ResponseTypeEphemeral, w)
4354

4455
return
4556
}
@@ -62,33 +73,23 @@ func deploy(s *server, w http.ResponseWriter, registry *NamedRepositoryRegistry,
6273
go func() {
6374
err = gitops.DeployVersionHandler(command)
6475
if err != nil {
65-
sendEphemeralMsg(fmt.Sprintf("failed to deploy: %s", err), w)
76+
respondSlack(fmt.Sprintf("failed to deploy: %s", err), slack.ResponseTypeEphemeral, w)
6677

6778
return
6879
}
6980
}()
7081

71-
params := &slack.Msg{
72-
Text: fmt.Sprintf(":alert: Deploying tag `%s` to `%s`:`%s`", version, r.Repository, r.File),
73-
ResponseType: slack.ResponseTypeInChannel,
74-
}
75-
b, err := json.Marshal(params)
76-
if err != nil {
77-
w.WriteHeader(http.StatusInternalServerError)
78-
return
79-
}
80-
w.Header().Set("Content-Type", "application/json")
81-
_, err = w.Write(b)
82-
83-
if err != nil {
84-
return
85-
}
82+
respondSlack(
83+
fmt.Sprintf(":alert: Deploying tag `%s` to `%s`:`%s`", version, r.Repository, r.File),
84+
slack.ResponseTypeInChannel,
85+
w,
86+
)
8687
}
8788

88-
func sendEphemeralMsg(m string, w http.ResponseWriter) {
89+
func respondSlack(m string, t string, w http.ResponseWriter) {
8990
b, err := json.Marshal(slack.Msg{
9091
Text: m,
91-
ResponseType: slack.ResponseTypeEphemeral,
92+
ResponseType: t,
9293
})
9394
if err != nil {
9495
fmt.Println(err)

0 commit comments

Comments
 (0)