37 lines
718 B
Go
37 lines
718 B
Go
package database
|
|
|
|
import (
|
|
"git.markbailey.dev/cerbervs/ptpp/lib/database/development"
|
|
"git.markbailey.dev/cerbervs/ptpp/lib/database/production"
|
|
"git.markbailey.dev/cerbervs/ptpp/lib/repository"
|
|
"os"
|
|
|
|
"git.markbailey.dev/cerbervs/ptpp/lib/logger"
|
|
)
|
|
|
|
type IDB interface {
|
|
Info(string)
|
|
Warn(string)
|
|
Error(err error)
|
|
Repo() repository.IRepository
|
|
}
|
|
|
|
func ChooseDB() IDB {
|
|
l := logger.NewDBLogger()
|
|
if os.Getenv("HTMX_APP_ENV") == "production" {
|
|
db, err := production.NewProdDB(l)
|
|
if err != nil {
|
|
l.Error(l.Wrap(err, "Error creating production database"))
|
|
}
|
|
|
|
return db
|
|
}
|
|
|
|
db, err := development.NewTestDB(l)
|
|
if err != nil {
|
|
l.Error(l.Wrap(err, "Error creating test database"))
|
|
}
|
|
|
|
return db
|
|
}
|