summaryrefslogtreecommitdiff
path: root/utils/shortcuts/flash.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/shortcuts/flash.go')
-rw-r--r--utils/shortcuts/flash.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/utils/shortcuts/flash.go b/utils/shortcuts/flash.go
new file mode 100644
index 0000000..ffb0afc
--- /dev/null
+++ b/utils/shortcuts/flash.go
@@ -0,0 +1,31 @@
+package shortcuts
+
+import (
+ "cafe/session"
+
+ "github.com/gofiber/fiber/v2"
+)
+
+const flashKey = "__flash__"
+
+func flash(ctx *fiber.Ctx, data any) error {
+ normalized, err := normalizeBind(data)
+ if err != nil {
+ return err
+ }
+
+ return session.Set(ctx, flashKey, normalized)
+}
+
+func consumeFlash(ctx *fiber.Ctx) (any, error) {
+ value, err := session.Get(ctx, flashKey)
+ if err != nil || value == nil {
+ return nil, err
+ }
+
+ if err := session.Delete(ctx, flashKey); err != nil {
+ return nil, err
+ }
+
+ return value, nil
+}