package web import ( "net/http" "pool-stats/database" "pool-stats/models" "strconv" ) type SharePageData struct { PageDataBase Shares []models.ShareLog Page int HasMore bool } func (ws *WebServer) SharesHandler(w http.ResponseWriter, r *http.Request) { entriesPerPage := 10 page := r.URL.Query().Get("page") if page == "" { page = "1" } offset, err := strconv.Atoi(page) if err != nil || offset < 1 { http.Error(w, "Invalid page number", 400) return } offset = (offset - 1) * entriesPerPage shareLogs := database.ListShares(ws.db, offset, entriesPerPage) if shareLogs == nil { http.Error(w, "Failed to load shares", 500) return } data := SharePageData{ Shares: shareLogs, Page: offset/entriesPerPage + 1, HasMore: len(shareLogs) == entriesPerPage, } ws.renderTemplate(w, r, "templates/shares.html", &data) }