@@ -10,42 +10,40 @@ import (
1010 "github.com/raphico/go-device-telemetry-api/internal/logger"
1111)
1212
13- func NewRouter (log * logger.Logger , userHandler * UserHandler ) http.Handler {
13+ func NewRouter (log * logger.Logger , userMw * UserMiddleware , userHandler * UserHandler ) http.Handler {
1414 r := chi .NewRouter ()
1515
1616 r .Use (chimw .RequestID )
1717 r .Use (chimw .RealIP )
1818 r .Use (chimw .Recoverer )
19+ r .Use (userMw .AuthMiddleware )
1920 r .Use (loggingMiddleware (log ))
2021 r .Use (chimw .Timeout (60 * time .Second ))
2122
2223 r .Route ("/api/v1" , func (r chi.Router ) {
24+ r .Route ("/auth" , func (r chi.Router ) {
25+ r .Post ("/register" , userHandler .RegisterUser )
26+ r .Post ("/login" , userHandler .LoginUser )
27+ r .Post ("/refresh" , userHandler .RefreshAccessToken )
28+ })
29+
30+ r .Group (func (r chi.Router ) {
31+ r .Use (userMw .RequireAuthMiddleware )
32+
33+ r .Get ("/" , func (w http.ResponseWriter , r * http.Request ) {
34+ w .WriteHeader (http .StatusOK )
35+ _ , _ = w .Write ([]byte ("OK" ))
36+ })
37+ })
38+
2339 r .Get ("/health" , func (w http.ResponseWriter , r * http.Request ) {
2440 w .WriteHeader (http .StatusOK )
2541 if _ , err := w .Write ([]byte ("OK" )); err != nil {
2642 log .Error (fmt .Sprintf ("failed to write health response: %v" , err ))
2743 }
2844 })
2945
30- r .Route ("/auth" , func (r chi.Router ) {
31- r .Post ("/register" , userHandler .RegisterUser )
32- r .Post ("/login" , userHandler .LoginUser )
33- r .Post ("/refresh" , userHandler .RefreshAccessToken )
34- })
3546 })
3647
3748 return r
3849}
39-
40- func loggingMiddleware (log * logger.Logger ) func (http.Handler ) http.Handler {
41- return func (next http.Handler ) http.Handler {
42- return http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
43- start := time .Now ()
44- next .ServeHTTP (w , r )
45- log .Info (fmt .Sprintf (
46- "HTTP request: method=%s, path=%s, remote=%s, duration=%s, reqID=%s" ,
47- r .Method , r .URL .Path , r .RemoteAddr , time .Since (start ), chimw .GetReqID (r .Context ()),
48- ))
49- })
50- }
51- }
0 commit comments