package sonar import "net/http" // FlashAndRedirect to flash and redirect away. func (s *Sonar) FlashAndRedirect(r *http.Request, w http.ResponseWriter, url string, flash string, v ...string) { s.Flash(r, w, flash, v...) w.Header().Add("Location", url) w.WriteHeader(http.StatusFound) } // Flash a message to the user. func (s *Sonar) Flash(r *http.Request, w http.ResponseWriter, tmpl string, v ...string) { session, _ := s.sessions.Get(r, s.Config.CookieName) session.AddFlash(tmpl, v...) session.Save(r, w) } // GetFlashes retrieves the flashed messages. func (s *Sonar) GetFlashes(r *http.Request, w http.ResponseWriter) []string { var result []string session, _ := s.sessions.Get(r, s.Config.CookieName) if flashes := session.Flashes(); len(flashes) > 0 { for _, flash := range flashes { result = append(result, flash.(string)) } } session.Save(r, w) return result }