forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
1package middleware 2 3import ( 4 "net/http" 5 6 "github.com/go-chi/chi/v5" 7 "tangled.org/core/appview/pages" 8 "tangled.org/core/appview/state/userutil" 9) 10 11// EnsureDidOrHandle ensures the "user" url param is valid did/handle format. 12// If not, respond with 404 13func EnsureDidOrHandle(p *pages.Pages) middlewareFunc { 14 return func(next http.Handler) http.Handler { 15 return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 16 user := chi.URLParam(r, "user") 17 18 // if using a DID or handle, just continue as per usual 19 if userutil.IsDid(user) || userutil.IsHandle(user) { 20 next.ServeHTTP(w, r) 21 return 22 } 23 24 // TODO: run Normalize middleware from here 25 26 p.Error404(w) 27 return 28 }) 29 } 30}