From fe71c07e17e279ce748466fc02f9e924df546a77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Bouzour=C3=A8ne?= Date: Mon, 30 Dec 2024 14:46:42 +0100 Subject: [PATCH] Create lists model & controllers --- controllers/lists.go | 35 +++++++++++++++++++++++++++++++++++ main.go | 22 +++++++++++++++++++++- models/lists.go | 16 ++++++++++++++++ views/partials/header.html | 6 +++--- 4 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 controllers/lists.go create mode 100644 models/lists.go diff --git a/controllers/lists.go b/controllers/lists.go new file mode 100644 index 0000000..0dfbd8e --- /dev/null +++ b/controllers/lists.go @@ -0,0 +1,35 @@ +package controllers + +import "github.com/gofiber/fiber/v2" + +func Lists(c *fiber.Ctx) error { + return c.SendString("Lists") +} + +func ListShow(c *fiber.Ctx) error { + return c.SendString("ListShow") +} + +func ListAdd(c *fiber.Ctx) error { + return c.SendString("ListAdd") +} + +func ListEdit(c *fiber.Ctx) error { + return c.SendString("ListEdit") +} + +func ListDelete(c *fiber.Ctx) error { + return c.SendString("ListDelete") +} + +func ListItemAdd(c *fiber.Ctx) error { + return c.SendString("ListItemAdd") +} + +func ListItemEdit(c *fiber.Ctx) error { + return c.SendString("ListItemEdit") +} + +func ListItemDelete(c *fiber.Ctx) error { + return c.SendString("ListItemDelete") +} diff --git a/main.go b/main.go index 755f5aa..c228f2b 100644 --- a/main.go +++ b/main.go @@ -93,18 +93,38 @@ func main() { app.Use(middlewares.TemplatesMiddleware) app.Use("/admin", middlewares.AuthzAdmin) - // Controllers + // Homepage app.Get("/", controllers.Homepage) + + // Login & logout app.Get("/login", controllers.LoginForm) app.Post("/login", controllers.LoginForm) app.Get("/logout", controllers.LogoutProcess) + + // Welcome page on first login app.Get("/welcome", controllers.WelcomePage) app.Post("/welcome", controllers.WelcomePage) + + // TOTP enroll & verify app.Get("/totp/enroll", controllers.TotpEnrollPage) app.Post("/totp/enroll", controllers.TotpEnrollPage) app.Get("/totp/verify", controllers.TotpVerifyPage) app.Post("/totp/verify", controllers.TotpVerifyPage) + // Admin: Lists + app.Get("/admin/lists", controllers.Lists) + app.Get("/admin/lists/:id", controllers.ListShow) + app.Get("/admin/lists/add", controllers.ListAdd) + app.Post("/admin/lists/add", controllers.ListAdd) + app.Get("/admin/lists/:id/edit", controllers.ListEdit) + app.Post("/admin/lists/:id/edit", controllers.ListEdit) + app.Delete("/admin/lists/:id", controllers.ListDelete) + app.Get("/admin/lists/:id/items/add", controllers.ListItemAdd) + app.Post("/admin/lists/:id/items/add", controllers.ListItemAdd) + app.Get("/admin/lists/:id/items/:id", controllers.ListItemEdit) + app.Post("/admin/lists/:id/items/:id", controllers.ListItemEdit) + app.Delete("/admin/lists/:id/items/:id", controllers.ListItemDelete) + listenAddr := fmt.Sprintf( "%s:%d", config.App.ListenAddress, diff --git a/models/lists.go b/models/lists.go new file mode 100644 index 0000000..2f2b252 --- /dev/null +++ b/models/lists.go @@ -0,0 +1,16 @@ +package models + +import "gorm.io/gorm" + +type List struct { + gorm.Model + Name string + Multi bool +} + +type ListItem struct { + gorm.Model + Value string + Default string + List List +} diff --git a/views/partials/header.html b/views/partials/header.html index ea4f74e..f5360b0 100644 --- a/views/partials/header.html +++ b/views/partials/header.html @@ -53,17 +53,17 @@