add auth middleware
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user