40 lines
941 B
Go
40 lines
941 B
Go
package repository
|
|
|
|
import (
|
|
"database/sql"
|
|
"errors"
|
|
"fmt"
|
|
models "vibeStonk/server/models/v1"
|
|
)
|
|
|
|
var (
|
|
ErrNoDBName = errors.New("no name for system DB")
|
|
)
|
|
|
|
func GetSystemConnector(config *Config) (*sql.DB, error) {
|
|
switch config.DBEngine {
|
|
case Sqlite:
|
|
return getSqliteConnection(config.DataRoot, config.SystemDBName)
|
|
default:
|
|
return nil, fmt.Errorf("unsupported database engine: %v", config.DBEngine)
|
|
}
|
|
}
|
|
|
|
func GetStockConnector(config *Config) (*sql.DB, error) {
|
|
switch config.DBEngine {
|
|
case Sqlite:
|
|
return getSqliteConnection(config.DataRoot, config.StockDBName)
|
|
default:
|
|
return nil, fmt.Errorf("unsupported database engine: %v", config.DBEngine)
|
|
}
|
|
}
|
|
|
|
func GetUserConnector(config *Config, user *models.User) (*sql.DB, error) {
|
|
switch config.DBEngine {
|
|
case Sqlite:
|
|
return getSqliteConnection(config.DataRoot, user.Id)
|
|
default:
|
|
return nil, fmt.Errorf("unsupported database engine: %v", config.DBEngine)
|
|
}
|
|
}
|