pool-stats/web/sharesHandler.go
Pijus Kamandulis ef247fc843 Added auth
2025-07-04 21:05:28 +03:00

46 lines
862 B
Go

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)
}