// GetFlashes retieves all flash messages found in a cookie session associated with ctx.. // // name is the session name which is used to store the flash messages. The flash // messages can be stored in any session, but it is a good idea to separate // session for flash messages from other sessions. // // key is the key that is used to identiry which flash messages are of interest. func GetFlashes(ctx *base.Context, name, key string) (Flashes, error) { ss, err := ctx.GetSession(name) if err != nil { return nil, err } if v, ok := ss.Values[key]; ok { delete(ss.Values, key) serr := ss.Save(ctx.Request(), ctx.Response()) if serr != nil { return nil, serr } return v.(Flashes), nil } return nil, errors.New("no flashes found") }
// Save saves flash messages to context func (f *Flasher) Save(ctx *base.Context, name, key string) error { ss, err := ctx.GetSession(name) if err != nil { return err } var flashes Flashes if v, ok := ss.Values[key]; ok { flashes = v.(Flashes) } ss.Values[key] = append(flashes, f.f...) err = ss.Save(ctx.Request(), ctx.Response()) if err != nil { return err } return nil }