func (cc *ChannelMessageContainer) AddReplies(query *request.Query) *ChannelMessageContainer { return withChannelMessageContainerChecks(cc, func(c *ChannelMessageContainer) error { if c.Message.TypeConstant == ChannelMessage_TYPE_REPLY { // if message itself already a reply, no need to add replies to it return nil } // fetch the replies mr := NewMessageReply() mr.MessageId = c.Message.Id q := query.Clone() q.Limit = query.ReplyLimit q.Skip = query.ReplySkip replies, err := mr.List(q) if err != nil { return err } // populate the replies as containers rs := NewChannelMessageContainers() rs.PopulateWith(replies, query) // set channel message containers c.Replies = *rs return nil }) }