Merge pull request 'Handle Contact not Found in GetTimeline' (#27) from bugfix-gettimeline into trunk
continuous-integration/drone/push Build is passing Details

Reviewed-on: #27
This commit is contained in:
Dan Ballard 2021-09-16 21:37:17 +00:00
commit f8882c0c0a
2 changed files with 18 additions and 6 deletions

9
lib.go
View File

@ -596,9 +596,12 @@ func GetMessagesByContentHash(profileOnion, handle string, contentHash string) s
profile := application.GetPeer(profileOnion) profile := application.GetPeer(profileOnion)
ph := utils.NewPeerHelper(profile) ph := utils.NewPeerHelper(profile)
var err error var err error
indexedMessages, err = ph.GetTimeline(handle).GetMessagesByHash(contentHash) timeline := ph.GetTimeline(handle)
if err != nil { if timeline != nil {
indexedMessages = []model.LocallyIndexedMessage{} indexedMessages, err = timeline.GetMessagesByHash(contentHash)
if err != nil {
indexedMessages = []model.LocallyIndexedMessage{}
}
} }
} }
bytes, _ := json.Marshal(indexedMessages) bytes, _ := json.Marshal(indexedMessages)

View File

@ -36,7 +36,8 @@ func (p *PeerHelper) IsServer(id string) bool {
return ok return ok
} }
// GetTimeline returns a pointer to the timeline associated with the conversation handle // GetTimeline returns a pointer to the timeline associated with the conversation handle or nil if the handle
// does not exist (this can happen if the conversation has been deleted)
func (p *PeerHelper) GetTimeline(handle string) *model.Timeline { func (p *PeerHelper) GetTimeline(handle string) *model.Timeline {
if p.IsServer(handle) { if p.IsServer(handle) {
// This should *never* happen // This should *never* happen
@ -45,9 +46,17 @@ func (p *PeerHelper) GetTimeline(handle string) *model.Timeline {
} }
// We return a pointer to the timeline to avoid copying, accessing Timeline is thread-safe // We return a pointer to the timeline to avoid copying, accessing Timeline is thread-safe
if p.IsGroup(handle) { if p.IsGroup(handle) {
return &p.peer.GetGroup(handle).Timeline group := p.peer.GetGroup(handle)
if group == nil {
return nil
}
return &group.Timeline
} }
return &p.peer.GetContact(handle).Timeline contact := p.peer.GetContact(handle)
if contact == nil {
return nil
}
return &contact.Timeline
} }
/* /*