diff options
author | Aki <please@ignore.pl> | 2024-01-09 23:22:16 +0100 |
---|---|---|
committer | Aki <please@ignore.pl> | 2024-01-09 23:22:57 +0100 |
commit | 4c7bd2da2a7c0e01f9c7a70f46b2d9b9f575b49b (patch) | |
tree | a5248197e5f7d09fff65a726e757c4ca192b4da5 /main.go | |
parent | afc212f5dc1a70d35b3240589a55db7912c45f02 (diff) | |
download | rudone-4c7bd2da2a7c0e01f9c7a70f46b2d9b9f575b49b.zip rudone-4c7bd2da2a7c0e01f9c7a70f46b2d9b9f575b49b.tar.gz rudone-4c7bd2da2a7c0e01f9c7a70f46b2d9b9f575b49b.tar.bz2 |
Created simple dashboard in the landing page
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 29 |
1 files changed, 26 insertions, 3 deletions
@@ -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) } } |