MCPcopy
hub / github.com/benbjohnson/wtf / handleIndex

Method handleIndex

http/server.go:423–470  ·  view source on GitHub ↗

handleIndex handles the "GET /" route. It displays a dashboard with the user's dials, recently updated membership values, & a chart.

(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

421// handleIndex handles the "GET /" route. It displays a dashboard with the
422// user's dials, recently updated membership values, & a chart.
423func (s *Server) handleIndex(w http.ResponseWriter, r *http.Request) {
424 // If user is not logged in & application is built with a home page,
425 // return the home page. Otherwise redirect to login.
426 if wtf.UserIDFromContext(r.Context()) == 0 {
427 if buf := assets.IndexHTML; len(buf) != 0 {
428 w.Write(buf)
429 return
430 }
431
432 http.Redirect(w, r, "/login", http.StatusFound)
433 return
434 }
435
436 var err error
437 var tmpl html.IndexTemplate
438
439 // Fetch all dials the user is a member of.
440 // If user is not a member of any dials, redirect to dial list which
441 // includes a description of how to start.
442 if tmpl.Dials, _, err = s.DialService.FindDials(r.Context(), wtf.DialFilter{}); err != nil {
443 Error(w, r, err)
444 return
445 } else if len(tmpl.Dials) == 0 {
446 http.Redirect(w, r, "/dials", http.StatusFound)
447 return
448 }
449
450 // Fetch recently updated members.
451 if tmpl.Memberships, _, err = s.DialMembershipService.FindDialMemberships(r.Context(), wtf.DialMembershipFilter{
452 Limit: 20,
453 SortBy: "updated_at_desc",
454 }); err != nil {
455 Error(w, r, err)
456 return
457 }
458
459 // Fetch historical average WTF values.
460 interval := time.Minute
461 end := time.Now().Truncate(interval).Add(interval)
462 start := end.Add(-1 * time.Hour)
463 if tmpl.AverageDialValueReport, err = s.DialService.AverageDialValueReport(r.Context(), start, end, interval); err != nil {
464 Error(w, r, err)
465 return
466 }
467
468 // Render the template to the response.
469 tmpl.Render(r.Context(), w)
470}
471
472// handleSettings handles the "GET /settings" route.
473func (s *Server) handleSettings(w http.ResponseWriter, r *http.Request) {

Callers

nothing calls this directly

Calls 6

UserIDFromContextFunction · 0.92
ErrorFunction · 0.70
FindDialsMethod · 0.65
FindDialMembershipsMethod · 0.65
RenderMethod · 0.65

Tested by

no test coverage detected