37 lines
853 B
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))
|
|
}
|
|
}
|