add auth middleware

This commit is contained in:
2026-02-23 16:39:04 -05:00
parent af9c23c521
commit 11eb192e2a
4 changed files with 89 additions and 5 deletions
+8 -2
View File
@@ -5,6 +5,7 @@ import (
"fmt"
"go-weather/config"
"go-weather/handlers"
"go-weather/middleware"
"go-weather/services"
"log"
"net/http"
@@ -64,16 +65,21 @@ func main() {
databaseService := services.NewDatabaseService(database)
weatherService := services.NewWeatherService(config.APIKey)
userService := services.NewUserService(database)
authService := services.NewAuthService(config.JWTSecret)
// Create route handlers
weatherHandler := handlers.NewWeatherHandler(weatherService, databaseService, config.DefaultCity)
userHandler := handlers.NewUserHandler(userService)
userHandler := handlers.NewUserHandler(userService, authService)
// Start background poller
go startPoller(database, weatherService, config.DefaultCity, 10*time.Minute)
// Register routes
http.HandleFunc("/weather/fetch", weatherHandler.FetchWeather)
http.HandleFunc("/login", userHandler.Login)
http.Handle("/weather/fetch", middleware.AuthMiddleware(authService)(
http.HandlerFunc(weatherHandler.FetchWeather)),
)
http.HandleFunc("/weather/history", weatherHandler.GetHistory)
http.HandleFunc("/health", handlers.Health)
http.HandleFunc("/latest-temperature", handlers.LatestTemperature)