authorizer/server/db/db.go

54 lines
1.6 KiB
Go
Raw Permalink Normal View History

2021-07-12 18:22:16 +00:00
package db
import (
2021-07-23 16:27:44 +00:00
"github.com/authorizerdev/authorizer/server/constants"
2022-01-21 06:48:07 +00:00
"github.com/authorizerdev/authorizer/server/db/providers"
"github.com/authorizerdev/authorizer/server/db/providers/arangodb"
2022-04-21 07:06:22 +00:00
"github.com/authorizerdev/authorizer/server/db/providers/cassandradb"
2022-01-21 06:48:07 +00:00
"github.com/authorizerdev/authorizer/server/db/providers/mongodb"
"github.com/authorizerdev/authorizer/server/db/providers/sql"
2022-01-17 06:02:13 +00:00
"github.com/authorizerdev/authorizer/server/envstore"
2021-07-12 18:22:16 +00:00
)
2022-01-21 08:04:04 +00:00
// Provider returns the current database provider
var Provider providers.Provider
2021-07-12 18:22:16 +00:00
2022-02-26 04:36:26 +00:00
func InitDB() error {
2021-07-12 18:22:16 +00:00
var err error
2022-04-21 07:06:22 +00:00
isSQL := envstore.EnvStoreObj.GetStringStoreEnvVariable(constants.EnvKeyDatabaseType) != constants.DbTypeArangodb && envstore.EnvStoreObj.GetStringStoreEnvVariable(constants.EnvKeyDatabaseType) != constants.DbTypeMongodb && envstore.EnvStoreObj.GetStringStoreEnvVariable(constants.EnvKeyDatabaseType) != constants.DbTypeCassandraDB
2022-02-28 02:25:01 +00:00
isArangoDB := envstore.EnvStoreObj.GetStringStoreEnvVariable(constants.EnvKeyDatabaseType) == constants.DbTypeArangodb
isMongoDB := envstore.EnvStoreObj.GetStringStoreEnvVariable(constants.EnvKeyDatabaseType) == constants.DbTypeMongodb
2022-04-21 07:06:22 +00:00
isCassandra := envstore.EnvStoreObj.GetStringStoreEnvVariable(constants.EnvKeyDatabaseType) == constants.DbTypeCassandraDB
2021-07-12 18:22:16 +00:00
2022-01-21 08:04:04 +00:00
if isSQL {
2022-01-21 06:48:07 +00:00
Provider, err = sql.NewProvider()
if err != nil {
2022-02-26 04:36:26 +00:00
return err
2022-01-21 06:48:07 +00:00
}
}
2022-01-21 08:04:04 +00:00
if isArangoDB {
2022-01-21 06:48:07 +00:00
Provider, err = arangodb.NewProvider()
if err != nil {
2022-02-26 04:36:26 +00:00
return err
2022-01-21 06:48:07 +00:00
}
}
2022-01-21 08:04:04 +00:00
if isMongoDB {
2022-01-21 06:48:07 +00:00
Provider, err = mongodb.NewProvider()
if err != nil {
2022-02-26 04:36:26 +00:00
return err
}
}
2022-02-26 04:36:26 +00:00
2022-04-21 07:06:22 +00:00
if isCassandra {
Provider, err = cassandradb.NewProvider()
if err != nil {
return err
}
}
2022-02-26 04:36:26 +00:00
return nil
2021-07-12 18:22:16 +00:00
}