shiny-pancake/database/database.go
2020-11-07 16:25:49 -06:00

68 lines
1.9 KiB
Go

package database
import (
_ "github.com/lib/pq"
)
//func DbConn(c HostDetails) (*sql.DB, error) {
// var h string
// var u string
// var pw string
// var dbn string
// var psqlInfo string
// h = c.Hostname
// u = c.Username
// pw = c.Secret
// dbn = c.DatabaseName
//
// logger.Logger("[LOG] connection details: host = " + h + " username = " + u)
//
// found, testUserName := data.ViperPgmConfig("test_user", "r")
// if found == true {
// logger.Logger("[LOG] found test user in .pgm.yaml")
// }
// psqlInfo = fmt.Sprintf("host=%s port=%d user=%s "+
// "password=%s dbname=%s sslmode=disable",
// h, 5432, u, pw, dbn)
// db, err := sql.Open("postgres", psqlInfo)
// if err != nil {
// var db *sql.DB
// switch u {
// case testUserName:
// logger.Logger("[ERROR] go tests expects to connect with the docker compose database." +
// "[ERROR] run \"docker-compose up\" and re-run tests")
// err := errors.New("unable to ping db" + dbn + "local db is closed, please run docker-compose up")
// return db, err
// default:
// logger.Logger("[ERROR] db error: " + err.Error())
// return db, err
// }
//
// }
// logger.Logger("[LOG] pinging db " + dbn)
// ctx := context.Background()
// err = db.PingContext(ctx)
//
// if err != nil {
// var db *sql.DB
// switch u {
// case testUserName:
// logger.Logger("[ERROR] db error, unable to ping: " + err.Error()+
// "\n[ERROR] ensure docker database is running and re-run tests")
// fmt.Println("local db is closed, please run docker-compose up")
// err1 := errors.New("unable to ping db" + dbn)
// return db, err1
// default:
// logger.Logger("[ERROR] db error: " + err.Error())
// return db, err
// }
// }
// return db, nil
//}
type HostDetails struct {
Secret string `json:"secret"`
Hostname string `json:"hostname"`
DatabaseName string `json:"databaseName"`
Username string `json:"username"`
}