package snap import "net/http" type Context struct { Username string srv *server w http.ResponseWriter r *http.Request vars map[string]string } type SnapContent struct { Username string AppData interface{} } func (c *Context) GetRequest() *http.Request { return c.r } func (c *Context) Writer() http.ResponseWriter { return c.w } func (c *Context) GetUser() string { return c.Username } func (c *Context) Error(code int, msg string) { c.srv.renderError(c.w, code, msg) } func (c *Context) Render(tmpl string, content interface{}) { c.srv.render(c.w, tmpl, content) } func (c *Context) RenderEx(tmpl string, content interface{}) { cnt := SnapContent { Username:c.Username, AppData:content, } c.srv.render(c.w, tmpl, &cnt) } func (c *Context) GetVar(k string) ( string, bool) { v,ok := c.vars[k] return v, ok } func (c *Context) GetVarDefault(k string,def string) (string) { v,ok := c.vars[k] if !ok { return def } return v } func (c *Context) ParseForm() error { return c.r.ParseForm() } func (c *Context) FormValue(k string) string { return c.r.FormValue(k) }