Skip to content

Commit 3ef385a

Browse files
committed
add response per hook
1 parent 6fda29c commit 3ef385a

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

bot/bot.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,34 @@ import (
55
"net/http"
66
)
77

8+
type HandledEventResult struct {
9+
AppliedRules []string `json:"applied_rules,omitempty"`
10+
Message string `json:"message,omitempty"`
11+
}
12+
813
type Bot interface {
9-
HandleEvent(r *http.Request)
14+
HandleEvent(r *http.Request) *HandledEventResult
1015
}
1116

1217
type bot struct {
1318
configuration Configuration
1419
}
1520

16-
func (b *bot) HandleEvent(r *http.Request) {
21+
func (b *bot) HandleEvent(r *http.Request) *HandledEventResult {
22+
result := &HandledEventResult{
23+
AppliedRules: []string{},
24+
}
1725
data, process := buildFromRequest(b.configuration.GetClientConfig(), r)
1826
if !process {
19-
return
27+
result.Message = "Skipping rules processing (could be not supported event type)"
28+
return result
2029
}
2130
applied := make([]Rule, 0)
2231
for _, rule := range b.configuration.GetRules() {
2332
if rule.Accept(data) {
2433
util.Logger.Debug("Accepting rule %s for '%s'", rule.Name(), data.GetTitle())
2534
applied = append(applied, rule)
35+
result.AppliedRules = append(result.AppliedRules, rule.Name())
2636
}
2737
}
2838
for _, rule := range applied {
@@ -31,6 +41,7 @@ func (b *bot) HandleEvent(r *http.Request) {
3141
action.Apply(b.configuration, data)
3242
}
3343
}
44+
return result
3445
}
3546

3647
func New(configPath string) (Bot, error) {

rivi.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,7 @@ func main() {
2525
log.Fatalln("Unable to start bot handler", err)
2626
}
2727
s := server.BotServer{Port: *port, Uri: *uri, Bot: run}
28-
s.Run()
28+
if err := s.Run(); err != nil {
29+
log.Fatalln("Bot exited with error. %s", err)
30+
}
2931
}

server/server.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ func (server *BotServer) Run() error {
3636
})
3737
}
3838
engine.POST(server.Uri, func(c *gin.Context) {
39-
server.Bot.HandleEvent(c.Request)
40-
c.Status(200)
39+
result := server.Bot.HandleEvent(c.Request)
40+
c.JSON(200, result)
4141
})
4242
return engine.Run(fmt.Sprintf(":%d", server.Port))
4343
}

0 commit comments

Comments
 (0)