From 42e797de5e60f1e5e84d55655de74cc983a932ff Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Mon, 1 Jun 2020 18:41:58 +0100 Subject: [PATCH] Unbreak dendritejs --- .../storage/accounts/sqlite3/constraint.go | 27 +++++++++++++++++++ .../accounts/sqlite3/constraint_wasm.go | 21 +++++++++++++++ .../auth/storage/accounts/sqlite3/storage.go | 4 +-- 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 clientapi/auth/storage/accounts/sqlite3/constraint.go create mode 100644 clientapi/auth/storage/accounts/sqlite3/constraint_wasm.go diff --git a/clientapi/auth/storage/accounts/sqlite3/constraint.go b/clientapi/auth/storage/accounts/sqlite3/constraint.go new file mode 100644 index 00000000..32f96c8e --- /dev/null +++ b/clientapi/auth/storage/accounts/sqlite3/constraint.go @@ -0,0 +1,27 @@ +// Copyright 2020 The Matrix.org Foundation C.I.C. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build !wasm + +package sqlite3 + +import ( + "errors" + + "github.com/mattn/go-sqlite3" +) + +func isConstraintError(err error) bool { + return errors.Is(err, sqlite3.ErrConstraint) +} diff --git a/clientapi/auth/storage/accounts/sqlite3/constraint_wasm.go b/clientapi/auth/storage/accounts/sqlite3/constraint_wasm.go new file mode 100644 index 00000000..b5077c07 --- /dev/null +++ b/clientapi/auth/storage/accounts/sqlite3/constraint_wasm.go @@ -0,0 +1,21 @@ +// Copyright 2020 The Matrix.org Foundation C.I.C. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build wasm + +package sqlite3 + +func isConstraintError(err error) bool { + return false +} \ No newline at end of file diff --git a/clientapi/auth/storage/accounts/sqlite3/storage.go b/clientapi/auth/storage/accounts/sqlite3/storage.go index 4b436708..5233001f 100644 --- a/clientapi/auth/storage/accounts/sqlite3/storage.go +++ b/clientapi/auth/storage/accounts/sqlite3/storage.go @@ -26,9 +26,7 @@ import ( "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" "golang.org/x/crypto/bcrypt" - // Import the sqlite3 database driver. - "github.com/mattn/go-sqlite3" ) // Database represents an account database @@ -172,7 +170,7 @@ func (d *Database) createAccount( } } if err := d.profiles.insertProfile(ctx, txn, localpart); err != nil { - if errors.Is(err, sqlite3.ErrConstraint) { + if isConstraintError(err) { return nil, internal.ErrUserExists } return nil, err