htmgo/h/state.go

36 lines
759 B
Go
Raw Normal View History

2024-09-11 00:52:18 +00:00
package h
import (
"fmt"
"github.com/gofiber/fiber/v2"
"mhtml/database"
)
func SessionSet(ctx *fiber.Ctx, key string, value string) error {
sessionId := getSessionId(ctx)
if sessionId == "" {
return nil
}
return database.HSet(fmt.Sprintf("session:%s", sessionId), key, value)
}
func SessionIncr(ctx *fiber.Ctx, key string) int64 {
sessionId := getSessionId(ctx)
if sessionId == "" {
return 0
}
return database.HIncr(fmt.Sprintf("session:%s", sessionId), key)
}
func SessionGet[T any](ctx *fiber.Ctx, key string) *T {
sessionId := getSessionId(ctx)
if sessionId == "" {
return nil
}
return database.HGet[T](fmt.Sprintf("session:%s", sessionId), key)
}
func getSessionId(ctx *fiber.Ctx) string {
return ctx.Cookies("mhtml-session")
}