From d1c271fc8eb99c221bdcd428e4d9195dfe5a1ba8 Mon Sep 17 00:00:00 2001 From: tsmethurst Date: Mon, 18 Oct 2021 10:41:33 +0200 Subject: [PATCH] serve web hndler --- internal/web/base.go | 9 +++++++++ internal/web/confirmemail.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 internal/web/confirmemail.go diff --git a/internal/web/base.go b/internal/web/base.go index 0eda1185a..d8eec3b90 100644 --- a/internal/web/base.go +++ b/internal/web/base.go @@ -30,6 +30,12 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/processing" "github.com/superseriousbusiness/gotosocial/internal/router" + "github.com/superseriousbusiness/gotosocial/internal/util" +) + +const ( + confirmEmailPath = "/" + util.ConfirmEmailPath + tokenParam = "token" ) // Module implements the api.ClientModule interface for web pages. @@ -100,6 +106,9 @@ func (m *Module) Route(s router.Router) error { // serve statuses s.AttachHandler(http.MethodGet, "/:user/statuses/:id", m.threadTemplateHandler) + // serve email confirmation page at /confirm_email?token=whatever + s.AttachHandler(http.MethodGet, confirmEmailPath, m.ConfirmEmailGETHandler) + // 404 handler s.AttachNoRouteHandler(m.NotFoundHandler) diff --git a/internal/web/confirmemail.go b/internal/web/confirmemail.go new file mode 100644 index 000000000..5dd898604 --- /dev/null +++ b/internal/web/confirmemail.go @@ -0,0 +1,33 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +package web + +import "github.com/gin-gonic/gin" + + +func (m *Module) ConfirmEmailGETHandler(c *gin.Context) { + // if there's no token in the query, just serve the 404 web handler + token := c.Query(tokenParam) + if token == "" { + m.NotFoundHandler(c) + return + } + + +}