diff options
author | Neil Alexander <neilalexander@users.noreply.github.com> | 2022-06-15 14:27:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-15 14:27:07 +0100 |
commit | 7120eb6bc943af6f725b0c61cfd110330f04064a (patch) | |
tree | a7e278689e44b36eeefe01cd7b8ecb247119c940 /federationapi/producers | |
parent | 1b90cc95367947fa00616b4426d0c894b33c9862 (diff) |
Add `InputDeviceListUpdate` to the keyserver, remove old input API (#2536)
* Add `InputDeviceListUpdate` to the keyserver, remove old input API
* Fix copyright
* Log more information when a device list update fails
Diffstat (limited to 'federationapi/producers')
-rw-r--r-- | federationapi/producers/syncapi.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/federationapi/producers/syncapi.go b/federationapi/producers/syncapi.go index 49415003..6453d026 100644 --- a/federationapi/producers/syncapi.go +++ b/federationapi/producers/syncapi.go @@ -17,6 +17,7 @@ package producers import ( "context" "encoding/json" + "fmt" "strconv" "time" @@ -34,6 +35,7 @@ type SyncAPIProducer struct { TopicSendToDeviceEvent string TopicTypingEvent string TopicPresenceEvent string + TopicDeviceListUpdate string JetStream nats.JetStreamContext ServerName gomatrixserverlib.ServerName UserAPI userapi.UserInternalAPI @@ -161,3 +163,18 @@ func (p *SyncAPIProducer) SendPresence( _, err := p.JetStream.PublishMsg(m, nats.Context(ctx)) return err } + +func (p *SyncAPIProducer) SendDeviceListUpdate( + ctx context.Context, deviceListUpdate *gomatrixserverlib.DeviceListUpdateEvent, +) (err error) { + m := nats.NewMsg(p.TopicDeviceListUpdate) + m.Header.Set(jetstream.UserID, deviceListUpdate.UserID) + m.Data, err = json.Marshal(deviceListUpdate) + if err != nil { + return fmt.Errorf("json.Marshal: %w", err) + } + + log.Debugf("Sending device list update: %+v", m.Header) + _, err = p.JetStream.PublishMsg(m, nats.Context(ctx)) + return err +} |