moved to psql pool closes #99

This commit is contained in:
2024-04-17 17:46:43 +01:00
parent 8ece8306dd
commit a3913ccdf5
14 changed files with 132 additions and 98 deletions

View File

@@ -1,10 +1,10 @@
package utils
import (
"database/sql"
"os"
"strings"
"git.andr3h3nriqu3s.com/andr3/fyp/logic/db"
. "git.andr3h3nriqu3s.com/andr3/fyp/logic/db_types"
. "git.andr3h3nriqu3s.com/andr3/fyp/logic/tasks/utils"
@@ -88,7 +88,7 @@ func failLog(err error) {
log.Fatal("Failed on setup", "error", err)
}
func (c *Config) Cleanup(db *sql.DB) {
func (c *Config) Cleanup(db db.Db) {
if c.CleanUpOnStartup != 1 {
return
}
@@ -125,7 +125,7 @@ func (c *Config) Cleanup(db *sql.DB) {
}
}
func (c *Config) GenerateToken(db *sql.DB) {
func (c *Config) GenerateToken(db db.Db) {
if c.ServiceUser.User == "" {
log.Fatal("A user needs to be set in a configuration file")
}

View File

@@ -2,7 +2,7 @@ package utils
import (
"bytes"
"database/sql"
"context"
"errors"
"fmt"
"io"
@@ -13,10 +13,13 @@ import (
"strings"
"time"
"git.andr3h3nriqu3s.com/andr3/fyp/logic/db"
dbtypes "git.andr3h3nriqu3s.com/andr3/fyp/logic/db_types"
"github.com/charmbracelet/log"
"github.com/go-playground/validator/v10"
"github.com/goccy/go-json"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgconn"
)
type AnyMap = map[string]interface{}
@@ -39,7 +42,7 @@ type Handler interface {
}
type Handle struct {
Db *sql.DB
Db db.Db
gets []HandleFunc
posts []HandleFunc
deletes []HandleFunc
@@ -235,16 +238,16 @@ type Context struct {
Token *string
User *dbtypes.User
Logger *log.Logger
Db *sql.DB
Db db.Db
Writer http.ResponseWriter
R *http.Request
Tx *sql.Tx
Tx pgx.Tx
ShowMessage bool
Handle *Handle
}
// This is required for this to integrate simealy with my orl
func (c Context) GetDb() *sql.DB {
func (c Context) GetDb() db.Db {
return c.Db
}
@@ -256,19 +259,22 @@ func (c Context) GetHost() string {
return c.Handle.Config.Hostname
}
func (c Context) Query(query string, args ...any) (*sql.Rows, error) {
return c.Db.Query(query, args...)
}
func (c Context) Exec(query string, args ...any) (sql.Result, error) {
return c.Db.Exec(query, args...)
}
func (c Context) Prepare(str string) (*sql.Stmt, error) {
func (c Context) Query(query string, args ...any) (pgx.Rows, error) {
if c.Tx == nil {
return c.Db.Prepare(str)
return c.Db.Query(query, args...)
}
return c.Tx.Prepare(str)
return c.Tx.Query(context.Background(), query, args...)
}
func (c Context) Exec(query string, args ...any) (pgconn.CommandTag, error) {
if c.Tx == nil {
return c.Db.Exec(query, args...)
}
return c.Tx.Exec(context.Background(), query, args...)
}
func (c Context) Begin() (pgx.Tx, error) {
return c.Db.Begin()
}
var TransactionAlreadyStarted = errors.New("Transaction already started")
@@ -279,7 +285,7 @@ func (c *Context) StartTx() error {
return TransactionAlreadyStarted
}
var err error = nil
c.Tx, err = c.Db.Begin()
c.Tx, err = c.Begin()
return err
}
@@ -287,7 +293,7 @@ func (c *Context) CommitTx() error {
if c.Tx == nil {
return TransactionNotStarted
}
err := c.Tx.Commit()
err := c.Tx.Commit(context.Background())
if err != nil {
return err
}
@@ -299,7 +305,7 @@ func (c *Context) RollbackTx() error {
if c.Tx == nil {
return TransactionNotStarted
}
err := c.Tx.Rollback()
err := c.Tx.Rollback(context.Background())
if err != nil {
return err
}
@@ -512,7 +518,7 @@ func (x Handle) ReadTypesFilesApi(pathTest string, baseFilePath string, fileType
})
}
func NewHandler(db *sql.DB, config Config) *Handle {
func NewHandler(db db.Db, config Config) *Handle {
var gets []HandleFunc
var posts []HandleFunc
var deletes []HandleFunc