diff options
author | Pierre Rudloff <contact@rudloff.pro> | 2016-07-26 14:04:28 +0200 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-07-26 08:04:28 -0400 |
commit | 564dffec35d2ab6772c2561f28d9ad9a2bcbeb40 (patch) | |
tree | 6e6caeee6f96707bc5faad7f984e673026e7806e /api | |
parent | c56b429e1dee257bac69de1db55cafee01ccd005 (diff) | |
download | chat-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.go | 15 |
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) } } |