Abit of refactoring into a more classic layout for an MVC style app.

This commit is contained in:
Zed A. Shaw 2025-06-24 23:55:38 -04:00
parent db58b38917
commit 0c47f02201
5 changed files with 44 additions and 86 deletions

View file

@ -1,16 +1,33 @@
package data
import (
"log"
"github.com/gofiber/fiber/v2"
_ "github.com/mattn/go-sqlite3"
"github.com/jmoiron/sqlx"
"zedshaw.games/webapp/util"
)
func SelectJson[T any](db *sqlx.DB, c *fiber.Ctx, err error, sql string, args ...interface{}) error {
var DB *sqlx.DB
func Setup(driver string, url string) {
var err error
DB, err = sqlx.Connect(driver, url)
if err != nil {
log.Fatalln(err)
}
}
func Shutdown() {
DB.Close()
}
func SelectJson[T any](c *fiber.Ctx, err error, sql string, args ...interface{}) error {
var result []T
if err != nil { goto fail }
err = db.Select(&result, sql, args...)
err = DB.Select(&result, sql, args...)
if err != nil { goto fail }
return c.JSON(&result)
@ -18,11 +35,11 @@ func SelectJson[T any](db *sqlx.DB, c *fiber.Ctx, err error, sql string, args ..
fail: return err
}
func GetJson[T any](db *sqlx.DB, c *fiber.Ctx, err error, sql string, args ...interface{}) error {
func GetJson[T any](c *fiber.Ctx, err error, sql string, args ...interface{}) error {
var result T
if err != nil { goto fail }
err = db.Get(&result, sql, args...)
err = DB.Get(&result, sql, args...)
if err != nil { goto fail }
return c.JSON(&result)
@ -30,11 +47,9 @@ func GetJson[T any](db *sqlx.DB, c *fiber.Ctx, err error, sql string, args ...in
fail: return err
}
func Insert(db *sqlx.DB, err error, sql_query string, args ...interface{}) error {
func Insert(err error, sql_query string, args ...interface{}) (error) {
defer util.HandlePanic("Insert")
if err != nil { return err }
db.MustExec(sql_query, args...)
DB.MustExec(sql_query, args...)
return err
}