aboutsummaryrefslogtreecommitdiff
path: root/serverkeyapi/storage
diff options
context:
space:
mode:
Diffstat (limited to 'serverkeyapi/storage')
-rw-r--r--serverkeyapi/storage/keydb.go23
-rw-r--r--serverkeyapi/storage/postgres/keydb.go6
-rw-r--r--serverkeyapi/storage/sqlite3/keydb.go9
3 files changed, 15 insertions, 23 deletions
diff --git a/serverkeyapi/storage/keydb.go b/serverkeyapi/storage/keydb.go
index c28c4de1..3d3a0c30 100644
--- a/serverkeyapi/storage/keydb.go
+++ b/serverkeyapi/storage/keydb.go
@@ -17,11 +17,11 @@
package storage
import (
- "net/url"
+ "fmt"
"golang.org/x/crypto/ed25519"
- "github.com/matrix-org/dendrite/internal/sqlutil"
+ "github.com/matrix-org/dendrite/internal/config"
"github.com/matrix-org/dendrite/serverkeyapi/storage/postgres"
"github.com/matrix-org/dendrite/serverkeyapi/storage/sqlite3"
"github.com/matrix-org/gomatrixserverlib"
@@ -29,22 +29,17 @@ import (
// NewDatabase opens a database connection.
func NewDatabase(
- dataSourceName string,
- dbProperties sqlutil.DbProperties,
+ dbProperties *config.DatabaseOptions,
serverName gomatrixserverlib.ServerName,
serverKey ed25519.PublicKey,
serverKeyID gomatrixserverlib.KeyID,
) (Database, error) {
- uri, err := url.Parse(dataSourceName)
- if err != nil {
- return postgres.NewDatabase(dataSourceName, dbProperties, serverName, serverKey, serverKeyID)
- }
- switch uri.Scheme {
- case "postgres":
- return postgres.NewDatabase(dataSourceName, dbProperties, serverName, serverKey, serverKeyID)
- case "file":
- return sqlite3.NewDatabase(dataSourceName, serverName, serverKey, serverKeyID)
+ switch {
+ case dbProperties.ConnectionString.IsSQLite():
+ return sqlite3.NewDatabase(dbProperties, serverName, serverKey, serverKeyID)
+ case dbProperties.ConnectionString.IsPostgres():
+ return postgres.NewDatabase(dbProperties, serverName, serverKey, serverKeyID)
default:
- return postgres.NewDatabase(dataSourceName, dbProperties, serverName, serverKey, serverKeyID)
+ return nil, fmt.Errorf("unexpected database type")
}
}
diff --git a/serverkeyapi/storage/postgres/keydb.go b/serverkeyapi/storage/postgres/keydb.go
index aaa4409b..63444085 100644
--- a/serverkeyapi/storage/postgres/keydb.go
+++ b/serverkeyapi/storage/postgres/keydb.go
@@ -20,6 +20,7 @@ import (
"golang.org/x/crypto/ed25519"
+ "github.com/matrix-org/dendrite/internal/config"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
)
@@ -35,13 +36,12 @@ type Database struct {
// It prepares all the SQL statements that it will use.
// Returns an error if there was a problem talking to the database.
func NewDatabase(
- dataSourceName string,
- dbProperties sqlutil.DbProperties,
+ dbProperties *config.DatabaseOptions,
serverName gomatrixserverlib.ServerName,
serverKey ed25519.PublicKey,
serverKeyID gomatrixserverlib.KeyID,
) (*Database, error) {
- db, err := sqlutil.Open("postgres", dataSourceName, dbProperties)
+ db, err := sqlutil.Open(dbProperties)
if err != nil {
return nil, err
}
diff --git a/serverkeyapi/storage/sqlite3/keydb.go b/serverkeyapi/storage/sqlite3/keydb.go
index dc72b79e..5174ece1 100644
--- a/serverkeyapi/storage/sqlite3/keydb.go
+++ b/serverkeyapi/storage/sqlite3/keydb.go
@@ -20,6 +20,7 @@ import (
"golang.org/x/crypto/ed25519"
+ "github.com/matrix-org/dendrite/internal/config"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/gomatrixserverlib"
@@ -37,16 +38,12 @@ type Database struct {
// It prepares all the SQL statements that it will use.
// Returns an error if there was a problem talking to the database.
func NewDatabase(
- dataSourceName string,
+ dbProperties *config.DatabaseOptions,
serverName gomatrixserverlib.ServerName,
serverKey ed25519.PublicKey,
serverKeyID gomatrixserverlib.KeyID,
) (*Database, error) {
- cs, err := sqlutil.ParseFileURI(dataSourceName)
- if err != nil {
- return nil, err
- }
- db, err := sqlutil.Open(sqlutil.SQLiteDriverName(), cs, nil)
+ db, err := sqlutil.Open(dbProperties)
if err != nil {
return nil, err
}