// Handler for /info/ to see a JSON view of some server context. func Info(w http.ResponseWriter, r *http.Request) { context, err := context.FromRequest(r) if err != nil { view.Error(w, r, err) return } info := map[string]interface{}{ "request": map[string]interface{}{ "method": r.Method, "form": r.Form, "url": map[string]interface{}{ "path": r.URL.Path, "query": r.URL.RawQuery, }, "headers": headerMap(r.Header), }, "context": context, "pageTabURL": context.PageTabURL("/"), "canvasURL": context.CanvasURL("/"), "sdkURL": context.SdkURL(), } if version != "" { info["version"] = version } humanJSON(info, w, r) }
func SdkChannel(w http.ResponseWriter, r *http.Request) { const maxAge = 31536000 // 1 year context, err := context.FromRequest(r) if err != nil { view.Error(w, r, err) return } service.Stats.Inc("viewed channel") w.Header().Set("Cache-Control", fmt.Sprintf("public, max-age=%d", maxAge)) view.Write(w, r, &h.Script{Src: context.SdkURL()}) }
func Simple(w http.ResponseWriter, r *http.Request) { context, example, err := parse(r) if err != nil { view.Error(w, r, err) return } if !example.AutoRun { view.Error( w, r, errors.New("Not allowed to view this example in simple mode.")) return } service.Stats.Inc("viewed example in simple mode") view.Write(w, r, &h.Document{ Inner: &h.Frag{ &h.Head{ Inner: &h.Frag{ &h.Meta{Charset: "utf-8"}, &h.Title{h.String(example.Title)}, }, }, &h.Body{ Inner: &h.Frag{ &loader.HTML{ Resource: []loader.Resource{ &fb.Init{ AppID: context.AppID, ChannelURL: context.ChannelURL(), URL: context.SdkURL(), }, }, }, &h.Div{ ID: "example", Inner: &exampleContent{ Context: context, Example: example, }, }, }, }, }, }) }