No changes made

This commit is contained in:
2025-04-16 12:47:04 -04:00
commit 1ed3b0c2d4
98 changed files with 8857 additions and 0 deletions

63
backend/database/conn.go Normal file
View 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
}

View File

@@ -0,0 +1,25 @@
package database
import (
"github.com/labstack/echo/v4"
)
type CustomContext struct {
echo.Context
Db *Database
}
func CreateDatabaseMiddleware() echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
cc := &CustomContext{
Context: c,
Db: GetNewDatabase(),
}
res := next(cc)
return res
}
}
}

View File

@@ -0,0 +1,34 @@
package database
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"github.com/golang-migrate/migrate"
"github.com/golang-migrate/migrate/database/postgres"
_ "github.com/golang-migrate/migrate/source/file"
"log"
)
func (db *Database) Migrate() {
sqlDB, err := sql.Open("postgres", db.DSN())
driver, err := postgres.WithInstance(sqlDB, &postgres.Config{})
if err != nil {
log.Fatal(err)
}
m, err := migrate.NewWithDatabaseInstance(
"file://./migrations",
db.databaseName,
driver,
)
if err != nil {
log.Fatal(err)
}
err = m.Up()
if err != nil && err.Error() != "no change" {
log.Fatal(err)
}
}