meteologica/service_a/server/main.go

37 lines
853 B
Go

package main
import (
"fmt"
"log/slog"
"net/http"
"servicea/internal/app"
"servicea/internal/domains/meteo"
"servicea/internal/router"
"time"
)
func main() {
pool := app.NewPGXPool("postgres://developer:secret@localhost:5432/meteologica?sslmode=disable")
mux := router.SetupRoutes()
meteoRepo := meteo.NewPGXRepo(pool)
meteoService := meteo.NewService(meteoRepo)
meteoHandler := meteo.NewHandler(meteoService)
meteo.RegisterRoutes(mux, meteoHandler)
server := http.Server{
Addr: ":8080",
Handler: mux,
ReadTimeout: 15 * time.Second,
WriteTimeout: 15 * time.Second,
IdleTimeout: 60 * time.Second,
ReadHeaderTimeout: 5 * time.Second,
}
slog.Info("server starting on :8080")
if err := server.ListenAndServe(); err != nil {
panic(fmt.Sprintf("server failed, error %s", err))
}
}