package main import ( "net/http" "github.com/bootdotdev/learn-cicd-starter/internal/auth" "github.com/bootdotdev/learn-cicd-starter/internal/database" ) type authedHandler func(http.ResponseWriter, *http.Request, database.User) func (cfg *apiConfig) middlewareAuth(handler authedHandler) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { apiKey, err := auth.GetAPIKey(r.Header) if err != nil { respondWithError(w, http.StatusUnauthorized, "Couldn't find api key", err) return } user, err := cfg.DB.GetUser(r.Context(), apiKey) if err != nil { respondWithError(w, http.StatusNotFound, "Couldn't get user", err) return } handler(w, r, user) } }