package auth import ( "dk/internal/router" "dk/internal/session" ) func SetFlashMessage(ctx router.Ctx, msgType, message string) bool { sessionID := GetSessionCookie(ctx) if sessionID == "" { return false } sess, exists := Manager.GetSession(sessionID) if !exists { return false } sess.SetFlash("message", session.FlashMessage{ Type: msgType, Message: message, }) Manager.store.Save(sess) return true } func GetFlashMessage(ctx router.Ctx) *session.FlashMessage { sessionID := GetSessionCookie(ctx) if sessionID == "" { return nil } sess, exists := Manager.GetSession(sessionID) if !exists { return nil } value, exists := sess.GetFlash("message") if !exists { return nil } Manager.store.Save(sess) if msg, ok := value.(session.FlashMessage); ok { return &msg } if msgMap, ok := value.(map[string]interface{}); ok { msg := &session.FlashMessage{} if t, ok := msgMap["type"].(string); ok { msg.Type = t } if m, ok := msgMap["message"].(string); ok { msg.Message = m } return msg } return nil } func SetFormData(ctx router.Ctx, data map[string]string) bool { sessionID := GetSessionCookie(ctx) if sessionID == "" { return false } sess, exists := Manager.GetSession(sessionID) if !exists { return false } sess.Set("form_data", data) Manager.store.Save(sess) return true } func GetFormData(ctx router.Ctx) map[string]string { sessionID := GetSessionCookie(ctx) if sessionID == "" { return nil } sess, exists := Manager.GetSession(sessionID) if !exists { return nil } value, exists := sess.Get("form_data") if !exists { return nil } sess.Delete("form_data") Manager.store.Save(sess) if formData, ok := value.(map[string]string); ok { return formData } if formMap, ok := value.(map[string]interface{}); ok { result := make(map[string]string) for k, v := range formMap { if str, ok := v.(string); ok { result[k] = str } } return result } return nil }