From de66eb900f2ac1f68dec822aa1e71afbeda7948f Mon Sep 17 00:00:00 2001 From: f0x Date: Sat, 19 Jun 2021 12:13:09 +0200 Subject: [PATCH] untested: move landing page to it's own router --- internal/cliactions/server/server.go | 3 ++ internal/router/router.go | 16 ------- internal/web/base.go | 62 ++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 16 deletions(-) create mode 100644 internal/web/base.go diff --git a/internal/cliactions/server/server.go b/internal/cliactions/server/server.go index f0558909d..2b6f767ef 100644 --- a/internal/cliactions/server/server.go +++ b/internal/cliactions/server/server.go @@ -27,6 +27,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/api/client/timeline" "github.com/superseriousbusiness/gotosocial/internal/api/s2s/user" "github.com/superseriousbusiness/gotosocial/internal/api/s2s/webfinger" + "github.com/superseriousbusiness/gotosocial/internal/web/base" "github.com/superseriousbusiness/gotosocial/internal/api/security" "github.com/superseriousbusiness/gotosocial/internal/blob" "github.com/superseriousbusiness/gotosocial/internal/cliactions" @@ -122,6 +123,7 @@ var Start cliactions.GTSAction = func(ctx context.Context, c *config.Config, log appsModule := app.New(c, processor, log) followRequestsModule := followrequest.New(c, processor, log) webfingerModule := webfinger.New(c, processor, log) + webBaseModule := webBase.new(c, log) usersModule := user.New(c, processor, log) timelineModule := timeline.New(c, processor, log) notificationModule := notification.New(c, processor, log) @@ -141,6 +143,7 @@ var Start cliactions.GTSAction = func(ctx context.Context, c *config.Config, log authModule, // now everything else + webBaseModule, accountModule, instanceModule, appsModule, diff --git a/internal/router/router.go b/internal/router/router.go index ea8bc7b14..adfd2ce6f 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -151,22 +151,6 @@ func New(config *config.Config, logger *logrus.Logger) (Router, error) { logger.Debugf("loading templates from %s", tmPath) engine.LoadHTMLGlob(tmPath) - // serve static files from /assets - // FIXME: why doesn't this config var work?? - // assetPath := filepath.Join(cwd, config.TemplateConfig.AssetBaseDir); - engine.Static("/assets", "./web/assets") - - // FIXME: actual variables - engine.GET("/", func(c *gin.Context) { - c.HTML(http.StatusOK, "index.tmpl", gin.H{ - "instancename": "GoToSocial Test Instance", - "countUsers": 3, - "countStatuses": 42069, - "version": "1.0.0", - "adminUsername": "@admin", - }) - }) - // create the actual http server here s := &http.Server{ Handler: engine, diff --git a/internal/web/base.go b/internal/web/base.go new file mode 100644 index 000000000..3f81d017d --- /dev/null +++ b/internal/web/base.go @@ -0,0 +1,62 @@ +/* + 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 base + +import ( + "net/http" + + "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/gotosocial/internal/config" + "github.com/superseriousbusiness/gotosocial/internal/router" +) + +type Module sruct { + config *config.Config + log *logrus.Logger +} + +func New(config *config.Config, log *logrus.Logger) { + return &Module{ + config: config, + log: log + } +} + +// Route satisfies the RESTAPIModule interface +func (m *Module) Route(s router.Router) error { + l := m.log.WithField("func", "BaseGETHandler") + + // serve static files from /assets + assetPath := filepath.Join(cwd, m.config.TemplateConfig.AssetBaseDir); + s.Static("/assets", assetPath); + + // serve front-page + s.GET("/", func(c *gin.Context) { + l.Trace("serving index html"); + // FIXME: actual variables + c.HTML(http.StatusOK, "index.tmpl", gin.H{ + "instancename": "GoToSocial Test Instance", + "countUsers": 3, + "countStatuses": 42069, + "version": "1.0.0", + "adminUsername": "@admin", + }); + }) + return nil +} \ No newline at end of file