move handlers to root folder
This commit is contained in:
125
accessHandler.go
Normal file
125
accessHandler.go
Normal file
@@ -0,0 +1,125 @@
|
||||
package AccessHandler
|
||||
|
||||
import "gitea.tecamino.com/paadi/tecamino-logger/logging"
|
||||
|
||||
//
|
||||
// AccessHandler
|
||||
//
|
||||
// Description:
|
||||
// AccessHandler manages access-related functionality, including
|
||||
// database operations for users and roles, as well as logging.
|
||||
// It encapsulates a database handler and a logger so that
|
||||
// authentication and authorization operations can be performed
|
||||
// consistently across the application.
|
||||
//
|
||||
type AccessHandler struct {
|
||||
dbHandler *DBHandler // Database handler used for managing users and roles
|
||||
logger *logging.Logger // Centralized application logger
|
||||
}
|
||||
|
||||
//
|
||||
// NewAccessHandler
|
||||
//
|
||||
// Description:
|
||||
// Creates and initializes a new AccessHandler instance.
|
||||
//
|
||||
// Behavior:
|
||||
// 1. If a logger is not provided (nil), it creates a new logger instance
|
||||
// that writes to "accessHandler.log".
|
||||
// 2. Initializes the AccessHandler struct.
|
||||
// 3. Sets up the internal DBHandler with the same logger.
|
||||
// 4. Automatically creates required database tables and default data:
|
||||
// - User table
|
||||
// - Default user(s)
|
||||
// - Role table
|
||||
// - Default role(s)
|
||||
//
|
||||
// Parameters:
|
||||
// - dbPath: The file path or connection string for the database.
|
||||
// - logger: Optional pointer to a logging.Logger instance. If nil, a new one is created.
|
||||
//
|
||||
// Returns:
|
||||
// - aH: A pointer to the fully initialized AccessHandler.
|
||||
// - err: Any error that occurs during initialization.
|
||||
//
|
||||
// Example:
|
||||
// handler, err := NewAccessHandler("data/app.db", appLogger)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// }
|
||||
//
|
||||
func NewAccessHandler(dbPath string, logger *logging.Logger) (aH *AccessHandler, err error) {
|
||||
if logger == nil {
|
||||
logger, err = logging.NewLogger("accessHandler.log", nil)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
logger.Debug("NewAccessHandler", "initialize new access handler")
|
||||
|
||||
// Initialize AccessHandler with logger
|
||||
aH = &AccessHandler{
|
||||
logger: logger,
|
||||
}
|
||||
|
||||
logger.Debug("NewAccessHandler", "initialize db handler")
|
||||
// Create a new DB handler instance
|
||||
aH.dbHandler, err = NewDBHandler(dbPath, logger)
|
||||
if err != nil {
|
||||
aH.logger.Error("NewAccessHandler", err)
|
||||
return
|
||||
}
|
||||
|
||||
logger.Debug("NewAccessHandler", "add user table")
|
||||
// Add the user table to the database
|
||||
err = aH.AddUserTable()
|
||||
if err != nil {
|
||||
aH.logger.Error("NewAccessHandler", err)
|
||||
return
|
||||
}
|
||||
|
||||
logger.Debug("NewAccessHandler", "add default user")
|
||||
// Add default users to the system
|
||||
err = aH.AddDefaultUser()
|
||||
if err != nil {
|
||||
aH.logger.Error("NewAccessHandler", err)
|
||||
return
|
||||
}
|
||||
|
||||
logger.Debug("NewAccessHandler", "add role table")
|
||||
// Add the role table to the database
|
||||
err = aH.AddRoleTable()
|
||||
if err != nil {
|
||||
aH.logger.Error("NewAccessHandler", err)
|
||||
return
|
||||
}
|
||||
|
||||
logger.Debug("NewAccessHandler", "add default role")
|
||||
// Add default roles to the system
|
||||
err = aH.AddDefaultRole()
|
||||
if err != nil {
|
||||
aH.logger.Error("NewAccessHandler", err)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
//
|
||||
// GetLogger
|
||||
//
|
||||
// Description:
|
||||
// Returns the logger associated with this AccessHandler instance.
|
||||
// Useful when another component or handler needs to reuse the
|
||||
// same logging instance for consistent log output.
|
||||
//
|
||||
// Returns:
|
||||
// - *logging.Logger: The logger assigned to this AccessHandler.
|
||||
//
|
||||
// Example:
|
||||
// log := accessHandler.GetLogger()
|
||||
// log.Info("Some event")
|
||||
//
|
||||
func (aH *AccessHandler) GetLogger() *logging.Logger {
|
||||
return aH.logger
|
||||
}
|
||||
Reference in New Issue
Block a user