Exemple #1
0
func (rh *RecoveryHandler) Handle(ctx *tango.Context) {
	// capture render-controller error
	if render, ok := ctx.Action().(ITheme); ok {
		if err, ok := ctx.Result.(tango.AbortError); ok {
			render.RenderError(err.Code(), err)
			return
		}
		if err, ok := ctx.Result.(error); ok {
			ctx.WriteHeader(500)
			render.RenderError(ctx.Status(), err)
			return
		}
	}

	// capture abort error
	/*
		if err, ok := ctx.Result.(tango.AbortError); ok {
			ctx.WriteHeader(err.Code())
			theme := new(ThemeRender)
			theme.SetTheme(nil)
			theme.RenderError(err.Code(), err)
			return
		}*/

	// unexpected error
	tango.Errors()(ctx)
}
Exemple #2
0
// Handle implement tango.Handle
func (c *Caches) Handle(ctx *tango.Context) {
	if action := ctx.Action(); ctx != nil {
		if s, ok := action.(Cacher); ok {
			s.SetCaches(c)
		}
	}

	ctx.Next()
}