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) }