From a66b676481d273508927e64a22e388dc302890ba Mon Sep 17 00:00:00 2001 From: FChannel <> Date: Sun, 22 May 2022 14:08:36 -0700 Subject: route organization --- route/routes/news.go | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 route/routes/news.go (limited to 'route/routes/news.go') diff --git a/route/routes/news.go b/route/routes/news.go new file mode 100644 index 0000000..0d226a5 --- /dev/null +++ b/route/routes/news.go @@ -0,0 +1,73 @@ +package routes + +import ( + "github.com/FChannel0/FChannel-Server/activitypub" + "github.com/FChannel0/FChannel-Server/config" + "github.com/FChannel0/FChannel-Server/db" + "github.com/FChannel0/FChannel-Server/route" + "github.com/FChannel0/FChannel-Server/util" + "github.com/FChannel0/FChannel-Server/webfinger" + "github.com/gofiber/fiber/v2" +) + +func NewsGet(ctx *fiber.Ctx) error { + timestamp := 0 + + actor, err := activitypub.GetActorFromDB(config.Domain) + if err != nil { + return util.MakeError(err, "NewsGet") + } + + var data route.PageData + data.PreferredUsername = actor.PreferredUsername + data.Boards = webfinger.Boards + data.Board.Name = "" + data.Key = config.Key + data.Board.Domain = config.Domain + data.Board.ModCred, _ = util.GetPasswordFromSession(ctx) + data.Board.Actor = actor + data.Board.Post.Actor = actor.Id + data.Board.Restricted = actor.Restricted + data.NewsItems = make([]db.NewsItem, 1) + + data.NewsItems[0], err = db.GetNewsItem(timestamp) + if err != nil { + return util.MakeError(err, "NewsGet") + } + + data.Title = actor.PreferredUsername + ": " + data.NewsItems[0].Title + + data.Themes = &config.Themes + data.ThemeCookie = route.GetThemeCookie(ctx) + + return ctx.Render("news", fiber.Map{"page": data}, "layouts/main") +} + +func AllNewsGet(ctx *fiber.Ctx) error { + actor, err := activitypub.GetActorFromDB(config.Domain) + if err != nil { + return util.MakeError(err, "AllNewsGet") + } + + var data route.PageData + data.PreferredUsername = actor.PreferredUsername + data.Title = actor.PreferredUsername + " News" + data.Boards = webfinger.Boards + data.Board.Name = "" + data.Key = config.Key + data.Board.Domain = config.Domain + data.Board.ModCred, _ = util.GetPasswordFromSession(ctx) + data.Board.Actor = actor + data.Board.Post.Actor = actor.Id + data.Board.Restricted = actor.Restricted + + data.NewsItems, err = db.GetNews(0) + if err != nil { + return util.MakeError(err, "AllNewsGet") + } + + data.Themes = &config.Themes + data.ThemeCookie = route.GetThemeCookie(ctx) + + return ctx.Render("anews", fiber.Map{"page": data}, "layouts/main") +} -- cgit v1.2.3