52 lines
1.2 KiB
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)
|
|
}
|
|
}
|