aboutsummaryrefslogtreecommitdiff
path: root/keyserver/internal/internal.go
diff options
context:
space:
mode:
Diffstat (limited to 'keyserver/internal/internal.go')
-rw-r--r--keyserver/internal/internal.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/keyserver/internal/internal.go b/keyserver/internal/internal.go
index 9027cbf4..474f30ff 100644
--- a/keyserver/internal/internal.go
+++ b/keyserver/internal/internal.go
@@ -179,6 +179,24 @@ func (a *KeyInternalAPI) QueryOneTimeKeys(ctx context.Context, req *api.QueryOne
res.Count = *count
}
+func (a *KeyInternalAPI) QueryDeviceMessages(ctx context.Context, req *api.QueryDeviceMessagesRequest, res *api.QueryDeviceMessagesResponse) {
+ msgs, err := a.DB.DeviceKeysForUser(ctx, req.UserID, nil)
+ if err != nil {
+ res.Error = &api.KeyError{
+ Err: fmt.Sprintf("failed to query DB for device keys: %s", err),
+ }
+ return
+ }
+ maxStreamID := 0
+ for _, m := range msgs {
+ if m.StreamID > maxStreamID {
+ maxStreamID = m.StreamID
+ }
+ }
+ res.Devices = msgs
+ res.StreamID = maxStreamID
+}
+
func (a *KeyInternalAPI) QueryKeys(ctx context.Context, req *api.QueryKeysRequest, res *api.QueryKeysResponse) {
res.DeviceKeys = make(map[string]map[string]json.RawMessage)
res.Failures = make(map[string]interface{})