summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorPierre Rudloff <contact@rudloff.pro>2016-07-26 14:04:28 +0200
committerChristopher Speller <crspeller@gmail.com>2016-07-26 08:04:28 -0400
commit564dffec35d2ab6772c2561f28d9ad9a2bcbeb40 (patch)
tree6e6caeee6f96707bc5faad7f984e673026e7806e /api
parentc56b429e1dee257bac69de1db55cafee01ccd005 (diff)
downloadchat-564dffec35d2ab6772c2561f28d9ad9a2bcbeb40.tar.gz
chat-564dffec35d2ab6772c2561f28d9ad9a2bcbeb40.tar.bz2
chat-564dffec35d2ab6772c2561f28d9ad9a2bcbeb40.zip
Add option to trigger outgoing webhook if first word starts with trigger word (#3611)
Diffstat (limited to 'api')
-rw-r--r--api/post.go15
1 files changed, 11 insertions, 4 deletions
diff --git a/api/post.go b/api/post.go
index 9bf6cff40..c363ff076 100644
--- a/api/post.go
+++ b/api/post.go
@@ -25,6 +25,11 @@ import (
"github.com/mattermost/platform/utils"
)
+const (
+ TRIGGERWORDS_FULL = 0
+ TRIGGERWORDS_STARTSWITH = 1
+)
+
func InitPost() {
l4g.Debug(utils.T("api.post.init.debug"))
@@ -383,12 +388,14 @@ func handleWebhookEvents(c *Context, post *model.Post, team *model.Team, channel
relevantHooks := []*model.OutgoingWebhook{}
for _, hook := range hooks {
- if hook.ChannelId == post.ChannelId {
- if len(hook.TriggerWords) == 0 || hook.HasTriggerWord(firstWord) {
+ if hook.ChannelId == post.ChannelId || len(hook.ChannelId) == 0 {
+ if hook.ChannelId == post.ChannelId && len(hook.TriggerWords) == 0 {
+ relevantHooks = append(relevantHooks, hook)
+ } else if hook.TriggerWhen == TRIGGERWORDS_FULL && hook.HasTriggerWord(firstWord) {
+ relevantHooks = append(relevantHooks, hook)
+ } else if hook.TriggerWhen == TRIGGERWORDS_STARTSWITH && hook.TriggerWordStartsWith(firstWord) {
relevantHooks = append(relevantHooks, hook)
}
- } else if len(hook.ChannelId) == 0 && hook.HasTriggerWord(firstWord) {
- relevantHooks = append(relevantHooks, hook)
}
}