-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommands.go
65 lines (51 loc) · 1.35 KB
/
commands.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package main
import (
"fmt"
"net/http"
"strings"
"time"
)
func handleNewKudoCommand(w http.ResponseWriter, memberFrom Member, command string, value int) {
kudo := Kudo{ID: 0, MemberFrom: memberFrom, Value: value, Color: randomColor(), Original: command, Date: time.Now()}
parsed := parseKudoCommand(command)
kudo.Text = parsed.Text
kudo.Recipients = parsed.Members
if len(kudo.Recipients) == 0 {
printKudoUsage(w)
return
}
if len(kudo.Text) == 0 {
fmt.Fprint(w, "Please enter kudo message!")
return
}
dbSaveKudo(&kudo)
kudos = append([]Kudo{kudo}, kudos...)
text := "New kudo from <@" + memberFrom.ID + ">!\n>" + kudo.Text
if value == -1 {
text = "New boo from <@" + memberFrom.ID + ">!\n>" + kudo.Text
}
for _, recip := range kudo.Recipients {
notifyUser(text, recip)
}
if value != -1 {
giver := memberFrom.Profile.FirstName + " " + memberFrom.Profile.LastName
receivers := ""
for _, r := range kudo.Recipients {
receivers += r.Profile.FirstName + " " + r.Profile.LastName + ", "
}
receivers = strings.Trim(receivers, ", ")
notifyChannel(
fmt.Sprintf(
":iceparrot::tada::confetti_ball: %s just gave %s a Kudos %s. :tada::celebrate:",
giver,
receivers,
kudo.Text,
),
)
}
if value == 1 {
fmt.Fprint(w, "Kudo has been registered!")
} else {
fmt.Fprint(w, "Boo has been registered!")
}
}