package main import ( "log" "net/http" "prak-03-todo/internal/db" "prak-03-todo/internal/handlers" "github.com/gorilla/mux" ) func main() { // Initialize database db.InitDB() // Use mux.NewRouter() to initialize Gorilla Mux router r := mux.NewRouter() // Home route r.HandleFunc("/", handlers.Home).Methods("GET") // Group management routes r.HandleFunc("/groups", handlers.GetAllGroupsHandler).Methods("GET") 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) }