This commit is contained in:
Matthieu Foucault
2021-12-09 02:25:49 -05:00
committed by GitHub
2 changed files with 24 additions and 0 deletions

3
.gitignore vendored
View File

@@ -4,3 +4,6 @@
# Exclude configuration file
matterbridge.toml
# Exclude session file created by MSTeams bridge
msteams_session.json

View File

@@ -123,6 +123,16 @@ func (b *Bmsteams) sendReply(msg config.Message) (string, error) {
return *res.ID, nil
}
func (b *Bmsteams) getReplies(channel string, msg msgraph.ChatMessage) ([]msgraph.ChatMessage, error) {
ct := b.gc.Teams().ID(b.GetString("TeamID")).Channels().ID(channel).Messages().ID(*msg.ID).Replies().Request()
rct, err := ct.Get(b.ctx)
if err != nil {
return nil, err
}
b.Log.Debugf("got %#v replies", len(rct))
return rct, nil
}
func (b *Bmsteams) getMessages(channel string) ([]msgraph.ChatMessage, error) {
ct := b.gc.Teams().ID(b.GetString("TeamID")).Channels().ID(channel).Messages().Request()
rct, err := ct.Get(b.ctx)
@@ -130,6 +140,13 @@ func (b *Bmsteams) getMessages(channel string) ([]msgraph.ChatMessage, error) {
return nil, err
}
b.Log.Debugf("got %#v messages", len(rct))
for _, msg := range rct {
replyct, replyerr := b.getReplies(channel, msg)
if replyerr != nil {
return nil, replyerr
}
rct = append(rct, replyct...)
}
return rct, nil
}
@@ -197,6 +214,10 @@ func (b *Bmsteams) poll(channelName string) error {
Extra: make(map[string][]interface{}),
}
if msg.ReplyToID != nil {
rmsg.ParentID = *msg.ReplyToID
}
b.handleAttachments(&rmsg, msg)
b.Log.Debugf("<= Message is %#v", rmsg)
b.Remote <- rmsg