Files
memberDB/handlers/database.go
2025-11-20 10:40:56 +01:00

57 lines
1.3 KiB
Go

package handlers
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
"time"
"gitea.tecamino.com/paadi/dbHandler"
"gitea.tecamino.com/paadi/tecamino-logger/logging"
)
type DatabaseHandler struct {
database *dbHandler.DBHandler
timeLocation *time.Location
token []byte
}
func NewDatabaseHandler(name, path string, logger *logging.Logger) (*DatabaseHandler, error) {
database, err := dbHandler.NewDBHandler(name, path, logger)
if err != nil {
return nil, err
}
return &DatabaseHandler{database: database}, nil
}
func (dH *DatabaseHandler) SetTimezone(timezone string) (err error) {
if timezone == "" {
timezone = "Local"
}
dH.timeLocation, err = time.LoadLocation(timezone)
return
}
func (dH *DatabaseHandler) DatabaseOpened() bool {
return dH.database != nil
}
func (dH *DatabaseHandler) AddNewTable(model any) error {
return dH.database.AddNewTable(model)
}
func (dH *DatabaseHandler) AddNewColum(model any) error {
return dH.database.AddNewColum(model)
}
func (dh *DatabaseHandler) hashField(field string) string {
h := hmac.New(sha256.New, dh.token)
h.Write([]byte(field))
return hex.EncodeToString(h.Sum(nil))
}
func (dh *DatabaseHandler) SetToken(token string) {
dh.token = []byte(token)
}