47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
package handlers
|
|
|
|
import (
|
|
"crypto/hmac"
|
|
"crypto/sha256"
|
|
"encoding/hex"
|
|
|
|
"gitea.tecamino.com/paadi/dbHandler"
|
|
"gitea.tecamino.com/paadi/tecamino-logger/logging"
|
|
)
|
|
|
|
type DatabaseHandler struct {
|
|
database *dbHandler.DBHandler
|
|
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) 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)
|
|
}
|