home.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package routes
  2. import (
  3. "net/http"
  4. "github.com/toolkits/str"
  5. "github.com/toolkits/web"
  6. "github.com/710leo/urlooker/modules/web/http/errors"
  7. "github.com/710leo/urlooker/modules/web/http/param"
  8. "github.com/710leo/urlooker/modules/web/http/render"
  9. "github.com/710leo/urlooker/modules/web/model"
  10. )
  11. func HomeIndex(w http.ResponseWriter, r *http.Request) {
  12. me := MeRequired(LoginRequired(w, r))
  13. username := me.Name
  14. mine := param.Int(r, "mine", 1)
  15. query := param.String(r, "q", "")
  16. if str.HasDangerousCharacters(query) {
  17. errors.Panic("查询字符不合法")
  18. }
  19. if IsAdmin(username) {
  20. mine = 0
  21. }
  22. limit := param.Int(r, "limit", 10)
  23. total, err := model.GetAllStrategyCount(mine, query, username)
  24. errors.MaybePanic(err)
  25. pager := web.NewPaginator(r, limit, total)
  26. strategies, err := model.GetAllStrategy(mine, limit, pager.Offset(), query, username)
  27. errors.MaybePanic(err)
  28. render.Put(r, "Strategies", strategies)
  29. render.Put(r, "Pager", pager)
  30. render.Put(r, "Mine", mine)
  31. render.Put(r, "Query", query)
  32. render.HTML(r, w, "home/index")
  33. }