summaryrefslogtreecommitdiff
path: root/nexus/pages
diff options
context:
space:
mode:
Diffstat (limited to 'nexus/pages')
-rw-r--r--nexus/pages/account/account.go13
-rw-r--r--nexus/pages/auth/login.go13
-rw-r--r--nexus/pages/auth/register.go13
-rw-r--r--nexus/pages/characters/characters.go52
4 files changed, 91 insertions, 0 deletions
diff --git a/nexus/pages/account/account.go b/nexus/pages/account/account.go
new file mode 100644
index 0000000..ed3abf1
--- /dev/null
+++ b/nexus/pages/account/account.go
@@ -0,0 +1,13 @@
+package account
+
+import (
+ "nexus/utils/meta"
+ "nexus/utils/shortcuts"
+
+ "github.com/gofiber/fiber/v2"
+)
+
+func Index(context *fiber.Ctx) error {
+ meta.SetPageTitle(context, "My Account")
+ return shortcuts.Render(context, "account/index", nil)
+}
diff --git a/nexus/pages/auth/login.go b/nexus/pages/auth/login.go
new file mode 100644
index 0000000..acc3a2f
--- /dev/null
+++ b/nexus/pages/auth/login.go
@@ -0,0 +1,13 @@
+package auth
+
+import (
+ "nexus/utils/meta"
+ "nexus/utils/shortcuts"
+
+ "github.com/gofiber/fiber/v2"
+)
+
+func Login(context *fiber.Ctx) error {
+ meta.SetPageTitle(context, "Sign In")
+ return shortcuts.Render(context, "auth/login", nil)
+}
diff --git a/nexus/pages/auth/register.go b/nexus/pages/auth/register.go
new file mode 100644
index 0000000..1fd5315
--- /dev/null
+++ b/nexus/pages/auth/register.go
@@ -0,0 +1,13 @@
+package auth
+
+import (
+ "nexus/utils/meta"
+ "nexus/utils/shortcuts"
+
+ "github.com/gofiber/fiber/v2"
+)
+
+func Register(context *fiber.Ctx) error {
+ meta.SetPageTitle(context, "Create Account")
+ return shortcuts.Render(context, "auth/register", nil)
+}
diff --git a/nexus/pages/characters/characters.go b/nexus/pages/characters/characters.go
new file mode 100644
index 0000000..ab49049
--- /dev/null
+++ b/nexus/pages/characters/characters.go
@@ -0,0 +1,52 @@
+package characters
+
+import (
+ characterService "nexus/services/character"
+ characterTypes "nexus/types/character"
+ "nexus/utils/collections"
+ "nexus/utils/meta"
+ "nexus/utils/shortcuts"
+
+ "github.com/gofiber/fiber/v2"
+)
+
+func Index(context *fiber.Ctx) error {
+ meta.SetPageTitle(context, "Characters")
+
+ characters, serviceErr := characterService.GetAllForAccount(meta.Account(context).ID)
+ if serviceErr != nil {
+ return serviceErr
+ }
+
+ response := make([]characterTypes.Response, len(characters))
+ for i, c := range characters {
+ response[i] = c.ToResponse()
+ }
+
+ return shortcuts.Render(context, "characters/index", characterTypes.IndexContext{
+ Characters: response,
+ })
+}
+
+func Create(context *fiber.Ctx) error {
+ meta.SetPageTitle(context, "Create Character")
+ return shortcuts.Render(context, "characters/create", nil)
+}
+
+func Store(context *fiber.Ctx) error {
+ body, err := meta.Body[characterTypes.CreateRequest](context)
+ if err != nil {
+ return shortcuts.RedirectWithFlash(context, "characters.create", collections.Record[string, any]{
+ "Error": err.Error(),
+ })
+ }
+
+ _, serviceErr := characterService.Create(meta.Account(context).ID, body)
+ if serviceErr != nil {
+ return shortcuts.RedirectWithFlash(context, "characters.create", collections.Record[string, any]{
+ "Error": serviceErr.Message,
+ })
+ }
+
+ return shortcuts.Redirect(context, "characters")
+}