summaryrefslogtreecommitdiff
path: root/nexus/middleware
diff options
context:
space:
mode:
authorBobby <[email protected]>2026-03-29 22:52:46 +0530
committerBobby <[email protected]>2026-03-29 22:52:46 +0530
commit9eb9b7f4bd552a641235764f66483e1f940fcfd9 (patch)
treeda520b923b5e6758d5457b6233dd6671fc640914 /nexus/middleware
parent65a143a0871c35989b7c7ea6723d39a0585c089e (diff)
downloadechoes-of-vaelun-main.tar.xz
echoes-of-vaelun-main.zip
feat: nexus account manager scaffold with auth, characters, realmsHEADmain
Diffstat (limited to 'nexus/middleware')
-rw-r--r--nexus/middleware/account.go30
-rw-r--r--nexus/middleware/middleware.go9
-rw-r--r--nexus/middleware/request.go12
-rw-r--r--nexus/middleware/session.go17
4 files changed, 68 insertions, 0 deletions
diff --git a/nexus/middleware/account.go b/nexus/middleware/account.go
new file mode 100644
index 0000000..5d2d5c1
--- /dev/null
+++ b/nexus/middleware/account.go
@@ -0,0 +1,30 @@
+package middleware
+
+import (
+ "nexus/repositories/account"
+ "nexus/sessions"
+ "nexus/utils/meta"
+
+ "github.com/gofiber/fiber/v2"
+ "github.com/gofiber/fiber/v2/middleware/session"
+)
+
+func resolveAccount(context *fiber.Ctx) error {
+ sess, ok := context.Locals(sessions.SessionLocalKey).(*session.Session)
+ if !ok {
+ return context.Next()
+ }
+
+ accountID, ok := sessions.GetSessionAccountID(sess)
+ if !ok {
+ return context.Next()
+ }
+
+ a, err := account.FindByID(accountID)
+ if err != nil {
+ return context.Next()
+ }
+
+ context.Locals(meta.AccountKey, a)
+ return context.Next()
+}
diff --git a/nexus/middleware/middleware.go b/nexus/middleware/middleware.go
new file mode 100644
index 0000000..4d4b7d5
--- /dev/null
+++ b/nexus/middleware/middleware.go
@@ -0,0 +1,9 @@
+package middleware
+
+import "github.com/gofiber/fiber/v2"
+
+func Initialize(application *fiber.App) {
+ application.Use(request)
+ application.Use(webSession)
+ application.Use(resolveAccount)
+}
diff --git a/nexus/middleware/request.go b/nexus/middleware/request.go
new file mode 100644
index 0000000..5a3b772
--- /dev/null
+++ b/nexus/middleware/request.go
@@ -0,0 +1,12 @@
+package middleware
+
+import (
+ "nexus/utils/meta"
+
+ "github.com/gofiber/fiber/v2"
+)
+
+func request(context *fiber.Ctx) error {
+ context.Locals(meta.RequestKey, meta.BuildRequest(context))
+ return context.Next()
+}
diff --git a/nexus/middleware/session.go b/nexus/middleware/session.go
new file mode 100644
index 0000000..0ca93ce
--- /dev/null
+++ b/nexus/middleware/session.go
@@ -0,0 +1,17 @@
+package middleware
+
+import (
+ "nexus/sessions"
+
+ "github.com/gofiber/fiber/v2"
+)
+
+func webSession(context *fiber.Ctx) error {
+ sess, err := sessions.Store.Get(context)
+ if err != nil {
+ return context.Next()
+ }
+
+ context.Locals(sessions.SessionLocalKey, sess)
+ return context.Next()
+}