aboutsummaryrefslogtreecommitdiff
path: root/userapi/internal
diff options
context:
space:
mode:
authorS7evinK <tfaelligen@gmail.com>2021-12-03 18:18:35 +0100
committerGitHub <noreply@github.com>2021-12-03 17:18:35 +0000
commit08a0278760b6d64ccacdb9ab47cd468f80243c57 (patch)
tree1ba1dc2606f38892a7c995484bbea85560a094e4 /userapi/internal
parentf9bac2f78aaed91a77cc1fe455a05899be2e2a12 (diff)
Add missing HTTP mode for userapi (#1982)
* Add missing internal api endpoint Signed-off-by: Till Faelligen <tfaelligen@gmail.com> * Add missing performKeyBackup endpoint * Add missing http mode for userapi * Fix failing tests * Add error checks * Fix sytest * Update startup logic for HTTP mode * Use userImpl for AS (annoying) * Don't send device list updates for appservice devices * Fix build Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Diffstat (limited to 'userapi/internal')
-rw-r--r--userapi/internal/api.go34
1 files changed, 28 insertions, 6 deletions
diff --git a/userapi/internal/api.go b/userapi/internal/api.go
index 4ff8f51d..5d91383d 100644
--- a/userapi/internal/api.go
+++ b/userapi/internal/api.go
@@ -119,6 +119,9 @@ func (a *UserInternalAPI) PerformDeviceCreation(ctx context.Context, req *api.Pe
}
res.DeviceCreated = true
res.Device = dev
+ if req.NoDeviceListUpdate {
+ return nil
+ }
// create empty device keys and upload them to trigger device list changes
return a.deviceListUpdate(dev.UserID, []string{dev.ID})
}
@@ -358,8 +361,11 @@ func (a *UserInternalAPI) QueryAccountData(ctx context.Context, req *api.QueryAc
func (a *UserInternalAPI) QueryAccessToken(ctx context.Context, req *api.QueryAccessTokenRequest, res *api.QueryAccessTokenResponse) error {
if req.AppServiceUserID != "" {
appServiceDevice, err := a.queryAppServiceToken(ctx, req.AccessToken, req.AppServiceUserID)
+ if err != nil {
+ res.Err = err.Error()
+ }
res.Device = appServiceDevice
- res.Err = err
+
return nil
}
device, err := a.DeviceDB.GetDeviceByAccessToken(ctx, req.AccessToken)
@@ -455,13 +461,16 @@ func (a *UserInternalAPI) QueryOpenIDToken(ctx context.Context, req *api.QueryOp
return nil
}
-func (a *UserInternalAPI) PerformKeyBackup(ctx context.Context, req *api.PerformKeyBackupRequest, res *api.PerformKeyBackupResponse) {
+func (a *UserInternalAPI) PerformKeyBackup(ctx context.Context, req *api.PerformKeyBackupRequest, res *api.PerformKeyBackupResponse) error {
// Delete metadata
if req.DeleteBackup {
if req.Version == "" {
res.BadInput = true
res.Error = "must specify a version to delete"
- return
+ if res.Error != "" {
+ return fmt.Errorf(res.Error)
+ }
+ return nil
}
exists, err := a.AccountDB.DeleteKeyBackup(ctx, req.UserID, req.Version)
if err != nil {
@@ -469,7 +478,10 @@ func (a *UserInternalAPI) PerformKeyBackup(ctx context.Context, req *api.Perform
}
res.Exists = exists
res.Version = req.Version
- return
+ if res.Error != "" {
+ return fmt.Errorf(res.Error)
+ }
+ return nil
}
// Create metadata
if req.Version == "" {
@@ -479,7 +491,10 @@ func (a *UserInternalAPI) PerformKeyBackup(ctx context.Context, req *api.Perform
}
res.Exists = err == nil
res.Version = version
- return
+ if res.Error != "" {
+ return fmt.Errorf(res.Error)
+ }
+ return nil
}
// Update metadata
if len(req.Keys.Rooms) == 0 {
@@ -489,10 +504,17 @@ func (a *UserInternalAPI) PerformKeyBackup(ctx context.Context, req *api.Perform
}
res.Exists = err == nil
res.Version = req.Version
- return
+ if res.Error != "" {
+ return fmt.Errorf(res.Error)
+ }
+ return nil
}
// Upload Keys for a specific version metadata
a.uploadBackupKeys(ctx, req, res)
+ if res.Error != "" {
+ return fmt.Errorf(res.Error)
+ }
+ return nil
}
func (a *UserInternalAPI) uploadBackupKeys(ctx context.Context, req *api.PerformKeyBackupRequest, res *api.PerformKeyBackupResponse) {