You've already forked reloading-manager
No changes made
This commit is contained in:
63
backend/database/conn.go
Normal file
63
backend/database/conn.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"git.s.int/packages/go/utilities/Env"
|
||||
"git.s.int/reloading-manager/backend/models/bullets"
|
||||
"git.s.int/reloading-manager/backend/models/loads"
|
||||
"git.s.int/reloading-manager/backend/models/manufacturer"
|
||||
"git.s.int/reloading-manager/backend/models/powder"
|
||||
"git.s.int/reloading-manager/backend/models/primers"
|
||||
"github.com/jackc/pgx/v5"
|
||||
"log"
|
||||
)
|
||||
|
||||
const (
|
||||
DbHost Env.EnvironmentVariable = "DB_HOST"
|
||||
DbDatabase Env.EnvironmentVariable = "DB_DATABASE"
|
||||
DbUser Env.EnvironmentVariable = "DB_USER"
|
||||
DbPassword Env.EnvironmentVariable = "DB_PASSWORD"
|
||||
)
|
||||
|
||||
type Database struct {
|
||||
Db *pgx.Conn
|
||||
connected bool
|
||||
databaseName string
|
||||
Bullets *bullets.Queries
|
||||
Manufacturer *manufacturer.Queries
|
||||
Powder *powder.Queries
|
||||
Primer *primers.Queries
|
||||
Loads *loads.Queries
|
||||
}
|
||||
|
||||
func (*Database) DSN() string {
|
||||
dbHost := DbHost.GetEnvString("localhost")
|
||||
dbDatabase := DbDatabase.GetEnvString("loading")
|
||||
dbUser := DbUser.GetEnvString("postgres")
|
||||
dbPassword := DbPassword.GetEnvString("password")
|
||||
|
||||
extraParams := "?sslmode=disable"
|
||||
|
||||
return fmt.Sprintf("postgres://%s:%s@%s:5432/%s%s", dbUser, dbPassword, dbHost, dbDatabase, extraParams)
|
||||
}
|
||||
|
||||
func GetNewDatabase() *Database {
|
||||
var dbSingleton Database
|
||||
|
||||
conn, dbErr := pgx.Connect(context.Background(), dbSingleton.DSN())
|
||||
if dbErr != nil {
|
||||
log.Fatal(dbErr)
|
||||
}
|
||||
|
||||
dbSingleton.Db = conn
|
||||
dbSingleton.connected = true
|
||||
dbSingleton.databaseName = DbDatabase.GetEnvString("loading")
|
||||
dbSingleton.Bullets = bullets.New(dbSingleton.Db)
|
||||
dbSingleton.Manufacturer = manufacturer.New(dbSingleton.Db)
|
||||
dbSingleton.Powder = powder.New(dbSingleton.Db)
|
||||
dbSingleton.Primer = primers.New(dbSingleton.Db)
|
||||
dbSingleton.Loads = loads.New(dbSingleton.Db)
|
||||
|
||||
return &dbSingleton
|
||||
}
|
||||
Reference in New Issue
Block a user