AuraGem Servers > Tree [main]

/db/db.go/

..
View Raw
package db

import (
	//"context"
	"database/sql"

	_ "github.com/nakagami/firebirdsql"
	"gitlab.com/clseibold/auragem_sis/config"
	"gitlab.com/clseibold/auragem_sis/oops"
	// "github.com/jackc/pgx/v4"
)

type DBType string

const (
	MusicDB    = "Music"
	LifeKeptDB = "LifeKept"
	StarWarsDB = "StarWars"
	SearchDB   = "Search"
	AskDB      = "Ask"
)

func StringToDB(s string) DBType {
	if s == "Music" || s == "music" {
		return MusicDB
	} else if s == "LifeKept" || s == "lifekept" {
		return LifeKeptDB
	} else if s == "StarWars" || s == "starwars" {
		return StarWarsDB
	} else if s == "Search" || s == "search" {
		return SearchDB
	} else if s == "Ask" || s == "ask" {
		return AskDB
	} else {
		panic("Have you added the database to db.go?")
	}
}

func NewConn(database DBType) *sql.DB {
	var conn *sql.DB
	var err error
	if database == MusicDB {
		conn, err = sql.Open("firebirdsql", config.MusicConfig.Firebird.DSN())
	} else if database == LifeKeptDB {
		conn, err = sql.Open("firebirdsql", config.LifeKeptConfig.Firebird.DSN())
	} else if database == StarWarsDB {
		conn, err = sql.Open("firebirdsql", config.StarWarsConfig.Firebird.DSN())
	} else if database == SearchDB {
		conn, err = sql.Open("firebirdsql", config.SearchConfig.Firebird.DSN())
	} else if database == AskDB {
		conn, err = sql.Open("firebirdsql", config.AskConfig.Firebird.DSN())
	} else {
		panic("Have you added the database to db.go?")
	}

	if err != nil {
		panic(oops.New(err, "failed to connect to database"))
	} else if err := conn.Ping(); err != nil {
		panic(err)
	}

	return conn
}

/*
func NewConnPool2(minConns, maxConns int32) *pgxpool.Pool {
	config, err := pgxpool.ParseConfig(config.SearchConfig2.Postgres.DSN())

	config.MinConns = minConns
	config.MaxConns = maxConns

	conn, err := pgxpool.ConnectConfig(context.Background(), config)
	if err != nil {
		panic(oops.New(err, "failed to create database connection pool"))
	}

	return conn
}
*/