package main import ( "app/shelfly/handlers" "app/shelfly/internal/db" "app/shelfly/internal/library" "app/shelfly/internal/route" "log" "net/http" "github.com/gorilla/mux" "github.com/joho/godotenv" ) func main() { err := godotenv.Load() if err != nil { log.Fatal("Erreur de chargement du fichier .env") } // 1. Démarrer le routeur principal r := mux.NewRouter() // 2. Initialiser la DB bd := db.InitDB() // 2.1 library.CreateDefaultFolder(bd) // 3. Routes non protégées : on les monte sur le routeur principal route.RoutesPublic(r, bd) // 4. Créer un sous-routeur pour les routes protégées protected := r.PathPrefix("/").Subrouter() // 5. Appliquer le middleware JWT à ce sous-routeur protected.Use(handlers.AuthMiddleware) // 6. Enregistrer les routes protégées sur ce sous-routeur route.RoutesProtected(protected, bd) // 7. Lancer le serveur sur le port 4000 log.Fatal(http.ListenAndServe(":4000", r)) }