func GetPaste(params martini.Params, ren render.Render, r *http.Request, cf *swift.Connection, mc *memcache.Client) { cachedPaste, err := mc.Get(params["pasteid"]) format := params["format"] if err != nil { log.Println(err) } var paste Paste paste.PasteId = params["pasteid"] if cachedPaste == nil { log.Println("Asking swift for ", params["pasteid"]) cfPaste, err := cf.ObjectGetBytes("go-cfpaste", params["pasteid"]) if err != nil { if err.Error() == "Object Not Found" { ren.HTML(404, "404", paste) return } else { log.Println(err) ren.Error(500) return } } err = json.Unmarshal(cfPaste, &paste) PanicIf(err) } else { log.Println("Cache hit for ", params["pasteid"]) err = json.Unmarshal(cachedPaste.Value, &paste) PanicIf(err) } if format == "json" { ren.JSON(200, paste) } else { ren.HTML(200, "paste", paste) } return }