task_manager/cmd/main.go
2025-03-21 23:24:24 +03:00

51 lines
1.1 KiB
Go

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)
}
}