not found page

This commit is contained in:
2026-01-19 12:01:15 -07:00
parent 4dd2f9aa89
commit afeb28f7f3
5 changed files with 110 additions and 15 deletions
+25 -14
View File
@@ -123,8 +123,7 @@ func (s *webpageRouter) serveTemplate(c *gin.Context) (response.Response, error)
r := c.Request
ctx := r.Context()
b, err := s.templater.Execute(
strings.Trim(r.URL.Path, "/"),
args := []any{
"Request",
r,
// add services and data here
@@ -142,24 +141,36 @@ func (s *webpageRouter) serveTemplate(c *gin.Context) (response.Response, error)
middleware.GetIdentity(ctx),
"Auth",
newTemplateAuthenticator(r),
)
}
b, err := s.templater.Execute(strings.Trim(r.URL.Path, "/"), args...)
if err != nil {
return s.handleTemplateError(err)
if isFileNotFoundError(err) || isInvalidWildcardValue(err) {
werr := response.NotFound().
Wrap(ErrTemplateNotFound{
err: err,
}).
Msg("resource not found")
nfb, nferr := s.templater.Execute("not-found", args...)
if nferr != nil {
s.log.Error("failed to render not-found page: %v", nferr)
return nil, werr
}
return nil, werr.
HTML(nfb)
}
return nil, err
}
return response.HTML(b), nil
}
func (s *webpageRouter) handleTemplateError(err error) (response.Response, error) {
if isFileNotFoundError(err) {
return nil, response.NotFound().
Wrap(ErrTemplateNotFound{
err: err,
}).
Msg("resource not found")
}
return nil, err
func isInvalidWildcardValue(err error) bool {
var te *templater.ErrInvalidWildcardValue
return errors.As(err, &te)
}
func isFileNotFoundError(err error) bool {