package main import ( "5803024008/internal/db" "5803024008/internal/handlers" "log" "net/http" "github.com/gorilla/mux" ) func home(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello broskie")) } func main() { // Initialize database connection database, err := db.InitDB() if err != nil { log.Fatal("Failed to connect to database:", err) } defer database.Close() // Set database connection for handlers handlers.SetDatabase(database) // Use mux.NewRouter() to initialize Gorilla Mux router r := mux.NewRouter() r.HandleFunc("/", home).Methods("GET") // Group management routes r.HandleFunc("/groups", handlers.CreateGroupHandler).Methods("POST") r.HandleFunc("/groups/{groupId}", handlers.GetGroupHandler).Methods("GET") r.HandleFunc("/groups/{groupId}", handlers.RemoveGroupHandler).Methods("DELETE") // Task management routes r.HandleFunc("/groups/{groupId}/tasks", handlers.CreateTaskHandler).Methods("POST") r.HandleFunc("/groups/{groupId}/tasks", handlers.DisplayTasksByGroupHandler).Methods("GET") r.HandleFunc("/tasks", handlers.DisplayTasksHandler).Methods("GET") r.HandleFunc("/tasks/{taskId}", handlers.GetTaskHandler).Methods("GET") r.HandleFunc("/tasks/{taskId}", handlers.UpdateTaskHandler).Methods("PUT") r.HandleFunc("/tasks/{taskId}", handlers.RemoveTaskHandler).Methods("DELETE") r.HandleFunc("/tasks/{taskId}/done", handlers.MarkTaskDoneHandler).Methods("PUT") // Use the http.ListenAndServe() function to start a new web server. log.Print("Starting server on :4000") err = http.ListenAndServe(":4000", r) log.Fatal(err) }