processPresence handles m.receipt events
(ctx context.Context, e gomatrixserverlib.EDU)
| 408 | |
| 409 | // processPresence handles m.receipt events |
| 410 | func (t *txnReq) processPresence(ctx context.Context, e gomatrixserverlib.EDU) error { |
| 411 | payload := types.Presence{} |
| 412 | if err := json.Unmarshal(e.Content, &payload); err != nil { |
| 413 | return err |
| 414 | } |
| 415 | for _, content := range payload.Push { |
| 416 | if _, serverName, err := gomatrixserverlib.SplitID('@', content.UserID); err != nil { |
| 417 | continue |
| 418 | } else if serverName == t.ourServerName { |
| 419 | continue |
| 420 | } else if serverName != t.Origin { |
| 421 | continue |
| 422 | } |
| 423 | presence, ok := syncTypes.PresenceFromString(content.Presence) |
| 424 | if !ok { |
| 425 | continue |
| 426 | } |
| 427 | if err := t.producer.SendPresence(ctx, content.UserID, presence, content.StatusMsg, content.LastActiveAgo); err != nil { |
| 428 | return err |
| 429 | } |
| 430 | } |
| 431 | return nil |
| 432 | } |
| 433 | |
| 434 | func (t *txnReq) processSigningKeyUpdate(ctx context.Context, e gomatrixserverlib.EDU) error { |
| 435 | var updatePayload keyapi.CrossSigningKeyUpdate |
no test coverage detected