package main import ( "backend/handlers" "backend/repositories" "database/sql" "log" "net/http" "github.com/jmoiron/sqlx" _ "github.com/lib/pq" "github.com/gorilla/mux" "github.com/rs/cors" ) func main() { dsn := "host=db user=admin password=admin dbname=monitoring sslmode=disable" db, err := sql.Open("postgres", dsn) if err != nil { log.Fatal(err) } err = db.Ping() if err != nil { log.Fatal("Impossible de joindre la DB:", err) } dbSqlx := sqlx.NewDb(db, "postgres") nodeRepo := &repositories.NodeRepository{DB: dbSqlx} nodeHandler := &handlers.NodeHandler{ Repo: nodeRepo, } router := mux.NewRouter() router.HandleFunc("/register", nodeHandler.HandleRegisterNode).Methods("POST") router.HandleFunc("/registerService", nodeHandler.HandleRegisterService).Methods("POST") router.HandleFunc("/updateServiceStatus", nodeHandler.HandleUpdateServiceStatus).Methods("POST") router.HandleFunc("/retrieveNodeList", nodeHandler.HandleRetrieveNodeList).Methods("GET") router.HandleFunc("/retrieveNode/{id}", handlers.HandleRetrieveNode).Methods("GET") //router.HandleFunc("/updateNode/{id}", nodeHandler.HandleUpdateNode).Methods("POST") //router.HandleFunc("/handleAddService/{NodeId}", handleUpdateNode).Methods("POST") router.HandleFunc("/deleteService", nodeHandler.HandleDeleteService).Methods("DELETE") c := cors.New(cors.Options{ // Remplacez par l'origine exacte de votre frontend AllowedOrigins: []string{"http://localhost:3000"}, AllowedMethods: []string{"GET", "POST", "PATCH", "DELETE"}, AllowCredentials: true, }) handler := c.Handler(router) log.Println("Backend running on :8080") log.Fatal(http.ListenAndServe(":8080", handler)) }