aboutsummaryrefslogtreecommitdiff
path: root/appservice
diff options
context:
space:
mode:
authorS7evinK <tfaelligen@gmail.com>2020-06-01 19:34:29 +0200
committerGitHub <noreply@github.com>2020-06-01 18:34:29 +0100
commit895c8f03c031a613f8f603eba753056ae4eb83b9 (patch)
treeb26e9445f62f2c53e11531a88e8b45c4439034dd /appservice
parentcfc137652ed0d783d946836cf4e9e18267a438dc (diff)
Fix pg user already exists (#1076)
* Return newly created error if user already exists (#1002) Signed-off-by: Till Faelligen <tfaelligen@gmail.com> * Rename variable * Remove check for account and use returned error * Return ErrUserExists Signed-off-by: Till Faelligen <tfaelligen@gmail.com> * State that CreateAccount will return err ErrUserExists if the user exists Signed-off-by: Till Faelligen <tfaelligen@gmail.com> * Also check sqlite for constraint error * Revert "Also check sqlite for constraint error" This reverts commit 7d310514 * Check for sqlite3 constraint error * Add documentation to CreateAccount * Move ErrUserExists to accounts package * Revert "Move ErrUserExists to accounts package" Import Cycle.. This reverts commit be3d4cda Co-authored-by: Kegsay <kegan@matrix.org>
Diffstat (limited to 'appservice')
-rw-r--r--appservice/appservice.go10
1 files changed, 6 insertions, 4 deletions
diff --git a/appservice/appservice.go b/appservice/appservice.go
index be5b30e2..68cf52e7 100644
--- a/appservice/appservice.go
+++ b/appservice/appservice.go
@@ -16,6 +16,7 @@ package appservice
import (
"context"
+ "errors"
"net/http"
"sync"
"time"
@@ -29,6 +30,7 @@ import (
"github.com/matrix-org/dendrite/appservice/workers"
"github.com/matrix-org/dendrite/clientapi/auth/storage/accounts"
"github.com/matrix-org/dendrite/clientapi/auth/storage/devices"
+ "github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/dendrite/internal/basecomponent"
"github.com/matrix-org/dendrite/internal/config"
"github.com/matrix-org/dendrite/internal/transactions"
@@ -117,12 +119,12 @@ func generateAppServiceAccount(
ctx := context.Background()
// Create an account for the application service
- acc, err := accountsDB.CreateAccount(ctx, as.SenderLocalpart, "", as.ID)
+ _, err := accountsDB.CreateAccount(ctx, as.SenderLocalpart, "", as.ID)
if err != nil {
+ if errors.Is(err, internal.ErrUserExists) { // This account already exists
+ return nil
+ }
return err
- } else if acc == nil {
- // This account already exists
- return nil
}
// Create a dummy device with a dummy token for the application service