allow custom message handling #325
|
@ -40,7 +40,7 @@ type PublicProfile struct {
|
|||
LocalID string // used by storage engine
|
||||
State string `json:"-"`
|
||||
lock sync.Mutex
|
||||
UnacknowledgedMessages map[string]Message
|
||||
UnacknowledgedMessages map[string]int
|
||||
}
|
||||
|
||||
// Profile encapsulates all the attributes necessary to be a Cwtch Peer.
|
||||
|
@ -66,7 +66,7 @@ func (p *PublicProfile) init() {
|
|||
if p.Attributes == nil {
|
||||
p.Attributes = make(map[string]string)
|
||||
}
|
||||
p.UnacknowledgedMessages = make(map[string]Message)
|
||||
p.UnacknowledgedMessages = make(map[string]int)
|
||||
p.LocalID = GenerateRandomID()
|
||||
}
|
||||
|
||||
|
@ -151,9 +151,10 @@ func (p *Profile) AddSentMessageToContactTimeline(onion string, messageTxt strin
|
|||
|
||||
message := &Message{PeerID: p.Onion, Message: messageTxt, Timestamp: sent, Received: now, Signature: sig, Acknowledged: false}
|
||||
if contact.UnacknowledgedMessages == nil {
|
||||
contact.UnacknowledgedMessages = make(map[string]Message)
|
||||
contact.UnacknowledgedMessages = make(map[string]int)
|
||||
}
|
||||
contact.UnacknowledgedMessages[eventID] = *message
|
||||
p.AddMessageToContactTimeline(onion, messageTxt, sent)
|
||||
contact.UnacknowledgedMessages[eventID] = p.Timeline.Len() - 1
|
||||
return message
|
||||
}
|
||||
return nil
|
||||
|
@ -182,10 +183,9 @@ func (p *Profile) ErrorSentMessageToPeer(onion string, eventID string, error str
|
|||
|
||||
contact, ok := p.Contacts[onion]
|
||||
if ok {
|
||||
message, ok := contact.UnacknowledgedMessages[eventID]
|
||||
mIdx, ok := contact.UnacknowledgedMessages[eventID]
|
||||
if ok {
|
||||
message.Error = error
|
||||
contact.Timeline.Insert(&message) // TODO: do we want a non timeline.Insert way to handle errors
|
||||
p.Timeline.Messages[mIdx].Error = error
|
||||
delete(contact.UnacknowledgedMessages, eventID)
|
||||
}
|
||||
}
|
||||
|
@ -198,10 +198,9 @@ func (p *Profile) AckSentMessageToPeer(onion string, eventID string) {
|
|||
|
||||
contact, ok := p.Contacts[onion]
|
||||
if ok {
|
||||
message, ok := contact.UnacknowledgedMessages[eventID]
|
||||
mIdx, ok := contact.UnacknowledgedMessages[eventID]
|
||||
if ok {
|
||||
message.Acknowledged = true
|
||||
contact.Timeline.Insert(&message)
|
||||
p.Timeline.Messages[mIdx].Acknowledged = true
|
||||
delete(contact.UnacknowledgedMessages, eventID)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue