aboutsummaryrefslogtreecommitdiff
path: root/appservice/storage/storage.go
diff options
context:
space:
mode:
Diffstat (limited to 'appservice/storage/storage.go')
-rw-r--r--appservice/storage/storage.go22
1 files changed, 9 insertions, 13 deletions
diff --git a/appservice/storage/storage.go b/appservice/storage/storage.go
index c848d15d..e2d7e4e5 100644
--- a/appservice/storage/storage.go
+++ b/appservice/storage/storage.go
@@ -17,26 +17,22 @@
package storage
import (
- "net/url"
+ "fmt"
"github.com/matrix-org/dendrite/appservice/storage/postgres"
"github.com/matrix-org/dendrite/appservice/storage/sqlite3"
- "github.com/matrix-org/dendrite/internal/sqlutil"
+ "github.com/matrix-org/dendrite/internal/config"
)
// NewDatabase opens a new Postgres or Sqlite database (based on dataSourceName scheme)
// and sets DB connection parameters
-func NewDatabase(dataSourceName string, dbProperties sqlutil.DbProperties) (Database, error) {
- uri, err := url.Parse(dataSourceName)
- if err != nil {
- return postgres.NewDatabase(dataSourceName, dbProperties)
- }
- switch uri.Scheme {
- case "postgres":
- return postgres.NewDatabase(dataSourceName, dbProperties)
- case "file":
- return sqlite3.NewDatabase(dataSourceName)
+func NewDatabase(dbProperties *config.DatabaseOptions) (Database, error) {
+ switch {
+ case dbProperties.ConnectionString.IsSQLite():
+ return sqlite3.NewDatabase(dbProperties)
+ case dbProperties.ConnectionString.IsPostgres():
+ return postgres.NewDatabase(dbProperties)
default:
- return postgres.NewDatabase(dataSourceName, dbProperties)
+ return nil, fmt.Errorf("unexpected database type")
}
}