diff options
author | 2021-06-21 21:08:02 +0200 | |
---|---|---|
committer | 2021-06-21 21:08:02 +0200 | |
commit | 5a2f3b35baeacff0c88c4455897f5edef9e6190f (patch) | |
tree | b0cde002b58545275d7010051200ae754c2e57dd /internal/web | |
parent | add favicon (#54) (diff) | |
download | gotosocial-5a2f3b35baeacff0c88c4455897f5edef9e6190f.tar.xz |
add 404 handler (#57)
Diffstat (limited to 'internal/web')
-rw-r--r-- | internal/web/base.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/internal/web/base.go b/internal/web/base.go index e54150ebc..8b2152767 100644 --- a/internal/web/base.go +++ b/internal/web/base.go @@ -68,6 +68,22 @@ func (m *Module) baseHandler(c *gin.Context) { }) } +func (m *Module) NotFoundHandler(c *gin.Context) { + l := m.log.WithField("func", "404") + l.Trace("serving 404 html") + + instance, err := m.processor.InstanceGet(m.config.Host) + if err != nil { + l.Debugf("error getting instance from processor: %s", err) + c.JSON(http.StatusInternalServerError, gin.H{"error": "internal server error"}) + return + } + + c.HTML(404, "404.tmpl", gin.H{ + "instance": instance, + }) +} + // Route satisfies the RESTAPIModule interface func (m *Module) Route(s router.Router) error { @@ -81,5 +97,9 @@ func (m *Module) Route(s router.Router) error { // serve front-page s.AttachHandler(http.MethodGet, "/", m.baseHandler) + + // 404 handler + s.AttachNoRouteHandler(m.NotFoundHandler) + return nil } |