pkiapi/cmd/main.go

52 lines
1.2 KiB
Go

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