github.com/bitcubate/cryptojournal@v1.2.5-0.20171102134152-f578b3d788ab/src/stories/actions/sitemap.go (about) 1 package storyactions 2 3 import ( 4 "net/http" 5 6 "github.com/fragmenta/server" 7 "github.com/fragmenta/view" 8 9 "github.com/bitcubate/cryptojournal/src/stories" 10 ) 11 12 // HandleSiteMap renders a site map of top stories 13 func HandleSiteMap(w http.ResponseWriter, r *http.Request) error { 14 15 // Build a query 16 q := stories.Query().Limit(5000) 17 18 // Select only above 0 points, Order by points, then id 19 q.Where("points > 0").Order("points desc, id desc") 20 21 // Fetch the stories 22 results, err := stories.FindAll(q) 23 if err != nil { 24 return server.InternalError(err) 25 } 26 27 // Render the template 28 view := view.NewRenderer(w, r) 29 view.Layout("") 30 view.Template("stories/views/sitemap.xml.got") 31 view.AddKey("stories", results) 32 view.AddKey("pubdate", storiesModTime(results)) 33 return view.Render() 34 }