package main import ( "fmt" "log" "github.com/gin-gonic/gin" "github.com/stef/pkiapi/internal/api" "github.com/stef/pkiapi/internal/config" "github.com/stef/pkiapi/internal/storage" ) func main() { // Charger la configuration cfg := config.LoadConfig() // Initialiser le moteur Gin router := gin.Default() // Initialiser le store var caStore storage.CertificateStore var certStore storage.CertificateStore if cfg.StorageType == "mongodb" { // Connexion à MongoDB mongoStore, err := storage.NewMongoStore(cfg.MongoURI, cfg.MongoDB) if err != nil { log.Fatalf("❌ Erreur connexion MongoDB: %v", err) } defer mongoStore.Close() caStore = mongoStore certStore = mongoStore fmt.Printf("✅ Connecté à MongoDB: %s\n", cfg.MongoDB) } else { // Store mémoire (par défaut) memStore := storage.NewMemoryStore() caStore = memStore certStore = memStore fmt.Println("✅ Utilisation du store mémoire") } // Ajouter les routes avec les stores api.RegisterRoutesWithStore(router, caStore, certStore) // Démarrer le serveur port := ":" + cfg.Port fmt.Printf("🚀 API PKI démarrée sur %s\n", port) if err := router.Run(port); err != nil { log.Fatal(err) } }