Files
bamort/backend/cmd/main.go
T
Bardioc26 95f0fc0b7a editing and maintenance and user suggestions
* every user has a right of a username and a display name and has the right to change it
* System information page now shows information about database user count, char count, and database schema version
* more maintenance lists
* show the right values in columns and fields
* move similar from inside of frontend component functions to utility js when used multiple times
* display help on mouse over
* add more than one believe to character
* make char name editable with better char info in headline
* GiT Gifttoleranz value not calculated correctly
* Bump backend to 0.2.3, frontend to 0.2.2
2026-02-03 17:21:43 +01:00

112 lines
3.0 KiB
Go

package main
import (
"bamort/appsystem"
"bamort/character"
"bamort/config"
"bamort/database"
"bamort/equipment"
"bamort/gsmaster"
"bamort/importer"
"bamort/logger"
"bamort/maintenance"
"bamort/pdfrender"
"bamort/router"
"bamort/transfer"
"bamort/user"
"github.com/gin-gonic/gin"
)
// @title BaMoRT API
// @version 1
// @description This is the API for BaMoRT
// @host localhost:8180
// @BasePath /
// @schemes http
func main() {
// Verwende die globale Konfigurationsvariable (bereits in config.init() geladen)
cfg := config.Cfg
// Logger konfigurieren
logger.SetDebugMode(cfg.DebugMode)
if cfg.LogLevel == "DEBUG" {
logger.SetMinLogLevel(logger.DEBUG)
} else if cfg.LogLevel == "WARN" {
logger.SetMinLogLevel(logger.WARN)
} else if cfg.LogLevel == "ERROR" {
logger.SetMinLogLevel(logger.ERROR)
} else {
logger.SetMinLogLevel(logger.INFO)
}
logger.Info("BaMoRT Server wird gestartet...")
logger.Debug("Debug-Modus ist aktiviert")
logger.Info("Environment: %s", cfg.Environment)
logger.Info("testingDB Set: %s", cfg.DevTesting)
logger.Info("Server Port: %s", cfg.ServerPort)
// Gin-Modus basierend auf Environment setzen
if cfg.IsProduction() {
gin.SetMode(gin.ReleaseMode)
logger.Info("Gin läuft im Release-Modus")
} else {
gin.SetMode(gin.DebugMode)
logger.Debug("Gin läuft im Debug-Modus")
}
// Datenbank verbinden
logger.Debug("Verbinde mit Datenbank...")
database.ConnectDatabase()
logger.Info("Datenbankverbindung erfolgreich")
/*
// Populate initial misc lookup data
logger.Debug("Initialisiere Misc-Lookup-Daten...")
if err := gsmaster.PopulateMiscLookupData(); err != nil {
logger.Warn("Fehler beim Initialisieren der Misc-Lookup-Daten: %s", err.Error())
} else {
logger.Info("Misc-Lookup-Daten erfolgreich initialisiert")
}
*/
// Initialize PDF templates
logger.Debug("Initialisiere PDF-Templates...")
if err := pdfrender.InitializeTemplates("/app/default_templates", cfg.TemplatesDir); err != nil {
logger.Warn("Fehler beim Initialisieren der Templates: %s", err.Error())
} else {
logger.Info("PDF-Templates erfolgreich initialisiert")
}
r := gin.Default()
router.SetupGin(r)
// Routes registrieren
logger.Debug("Registriere API-Routen...")
protected := router.BaseRouterGrp(r)
// Register your module routes
user.RegisterRoutes(protected)
gsmaster.RegisterRoutes(protected)
character.RegisterRoutes(protected)
equipment.RegisterRoutes(protected)
maintenance.RegisterRoutes(protected)
importer.RegisterRoutes(protected)
pdfrender.RegisterRoutes(protected)
transfer.RegisterRoutes(protected)
appsystem.RegisterRoutes(protected)
// Register public routes (no authentication)
pdfrender.RegisterPublicRoutes(r)
appsystem.RegisterPublicRoutes(r)
logger.Info("API-Routen erfolgreich registriert")
// Server starten
serverAddress := cfg.GetServerAddress()
logger.Info("Server startet auf Adresse: %s", serverAddress)
if err := r.Run(serverAddress); err != nil {
logger.Error("Fehler beim Starten des Servers: %s", err.Error())
panic(err)
}
}