package app import ( md "farga/app/middleware" "farga/db/types" "farga/lib" "farga/templating" "net/http" ) // requires `md.UserHandle` middleware. func (a *App) UserProfileHandler(w http.ResponseWriter, r *http.Request) { user, ok := r.Context().Value(md.UserHandleKey).(*types.User) if !ok { // the user middleware failed, and returned no user. http.NotFound(w, r) return } var isOwner bool reqUser, ok := r.Context().Value(lib.UserKey).(*types.User) if ok && user.ID == reqUser.ID { isOwner = true } templating.Render(w, r, "base", "user-profile", map[string]any{ "User": user, "IsOwner": isOwner, }) }