func Router(session *mgo.Session) func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, req *http.Request) { user_agent := new(ua.UserAgent) user_agent.Parse(req.Header.Get("User-Agent")) url := req.FormValue("url") engine_name, engine_version := user_agent.Engine() browser_name, browser_version := user_agent.Browser() url_document := &URL{ Date: time.Now(), Uri: url, Mobile: user_agent.Mobile(), Bot: user_agent.Bot(), Mozilla: user_agent.Mozilla(), Platform: user_agent.Platform(), Os: user_agent.OS(), EngineName: engine_name, EngineVersion: engine_version, BrowserName: browser_name, BrowserVersion: browser_version, } c := session.DB("goanywhere").C("urls") err := c.Insert(url_document) if err != nil { panic(err) } http.Redirect(w, req, url, http.StatusFound) } }