package main import ( "database/sql" "fmt" "log" "net/http" "time" _ "github.com/lib/pq" "github.com/gorilla/handlers" "github.com/gorilla/mux" "task_manager/internal/app" "task_manager/internal/config" "task_manager/internal/persistance" ) func main() { r := mux.NewRouter() db, err := sql.Open("postgres", config.CONNECTION_STRING) if err != nil { log.Fatalf("Open error database: %v", err) } repo := persistance.NewTaskManager(db) task := app.NewTaskManager(repo) task.RegisterRoutes(r) corsMiddleware := handlers.CORS( handlers.AllowedOrigins([]string{"*"}), handlers.AllowedMethods([]string{"GET", "POST", "OPTIONS"}), handlers.AllowedHeaders([]string{"Content-Type", "Authorization"}), ) address := fmt.Sprintf(":%d", 8080) log.Printf("The server is running on the port %s\n", address) srv := &http.Server{ Addr: address, Handler: corsMiddleware(r), ReadTimeout: 10 * time.Second, WriteTimeout: 10 * time.Second, IdleTimeout: 20 * time.Second, } if err := srv.ListenAndServe(); err != nil { log.Fatalf("Server startup error: %v", err) } }