diff options
Diffstat (limited to 'bridge/mattermost')
-rw-r--r-- | bridge/mattermost/handlers.go | 2 | ||||
-rw-r--r-- | bridge/mattermost/mattermost.go | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/bridge/mattermost/handlers.go b/bridge/mattermost/handlers.go index 67e68d02..58af43a8 100644 --- a/bridge/mattermost/handlers.go +++ b/bridge/mattermost/handlers.go @@ -108,7 +108,7 @@ func (b *Bmattermost) handleMatterClient(messages chan *config.Message) { Channel: message.Channel, Text: message.Text, ID: message.Post.Id, - ParentID: message.Post.ParentId, + ParentID: message.Post.RootId, // ParentID is obsolete with mattermost Extra: make(map[string][]interface{}), } diff --git a/bridge/mattermost/mattermost.go b/bridge/mattermost/mattermost.go index e41b19d7..2c11b79e 100644 --- a/bridge/mattermost/mattermost.go +++ b/bridge/mattermost/mattermost.go @@ -127,6 +127,15 @@ func (b *Bmattermost) Send(msg config.Message) (string, error) { msg.Text = fmt.Sprintf("[thread]: %s", msg.Text) } + // we only can reply to the root of the thread, not to a specific ID (like discord for example does) + if msg.ParentID != "" { + post, res := b.mc.Client.GetPost(msg.ParentID, "") + if res.Error != nil { + b.Log.Errorf("getting post %s failed: %s", msg.ParentID, res.Error.DetailedError) + } + msg.ParentID = post.RootId + } + // Upload a file if it exists if msg.Extra != nil { for _, rmsg := range helper.HandleExtra(&msg, b.General) { |