mirror of
https://github.com/gabehf/Koito.git
synced 2026-03-07 13:38:15 -08:00
* wip * chore: update counts to allow unix timeframe * feat: add db functions for counting new items * wip: endpoint working * wip * wip: initial ui done * add header, adjust ui * add time listened toggle * fix layout, year param * param fixes
28 lines
840 B
Go
28 lines
840 B
Go
package handlers
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gabehf/koito/internal/db"
|
|
"github.com/gabehf/koito/internal/logger"
|
|
"github.com/gabehf/koito/internal/summary"
|
|
"github.com/gabehf/koito/internal/utils"
|
|
)
|
|
|
|
func SummaryHandler(store db.DB) http.HandlerFunc {
|
|
return func(w http.ResponseWriter, r *http.Request) {
|
|
ctx := r.Context()
|
|
l := logger.FromContext(ctx)
|
|
l.Debug().Msg("GetTopAlbumsHandler: Received request to retrieve top albums")
|
|
timeframe := TimeframeFromRequest(r)
|
|
|
|
summary, err := summary.GenerateSummary(ctx, store, 1, timeframe, "")
|
|
if err != nil {
|
|
l.Err(err).Int("userid", 1).Any("timeframe", timeframe).Msgf("SummaryHandler: Failed to generate summary")
|
|
utils.WriteError(w, "failed to generate summary", http.StatusInternalServerError)
|
|
return
|
|
}
|
|
|
|
utils.WriteJSON(w, http.StatusOK, summary)
|
|
}
|
|
}
|