From 4c7bd2da2a7c0e01f9c7a70f46b2d9b9f575b49b Mon Sep 17 00:00:00 2001 From: Aki Date: Tue, 9 Jan 2024 23:22:16 +0100 Subject: Created simple dashboard in the landing page --- main.go | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 73de3e1..f5129ce 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( "net/http" "os" "strconv" + "time" "github.com/gorilla/mux" ) @@ -74,15 +75,37 @@ func handleEntryGet(w http.ResponseWriter, r *http.Request) { } } +type Stat struct { + Title string + Amount uint +} + +type Home struct { + Stats []Stat +} + func handleHome(pathname string) func(http.ResponseWriter, *http.Request) { t := template.Must(template.ParseFS(content, pathname)) return func(w http.ResponseWriter, r *http.Request) { - count, err := CountEntries() - if err != nil { + var home Home + now := time.Now().UTC() + last_day, err := EntriesSince(now.AddDate(0, 0, -1)) + if err == nil { + home.Stats = append(home.Stats, Stat{"Last 24 hours", uint(len(last_day))}) + } + last_month, err := EntriesSince(now.AddDate(0, 0, -30)) + if err == nil { + home.Stats = append(home.Stats, Stat{"Last 30 days", uint(len(last_month))}) + } + total, err := CountEntries() + if err == nil { + home.Stats = append(home.Stats, Stat{"Total", total}) + } + if len(home.Stats) < 1 { http.Error(w, err.Error(), http.StatusInternalServerError) return } - t.Execute(w, count) + t.Execute(w, home) } } -- cgit v1.1