ShOrgRu/pkg/handler/quote/top.go

29 lines
577 B
Go
Raw Normal View History

package quote
2024-10-06 17:04:37 +03:00
import (
"github.com/labstack/echo/v4"
"sh.org.ru/pkg/model"
"sh.org.ru/pkg/tpl"
)
func (h *Handler) Top(c echo.Context) error {
2024-10-06 17:04:37 +03:00
p := &Pagination{}
if err := c.Bind(p); err != nil {
return err
}
quotes := make([]model.Quote, 0, 20)
count, err := h.db.NewSelect().
2024-10-06 17:04:37 +03:00
Model((*model.Quote)(nil)).
Order("rating DESC").
2024-10-06 17:04:37 +03:00
Where("approved = ?", true).
Limit(20).
Offset(p.Page*20).
ScanAndCount(c.Request().Context(), &quotes)
if err != nil {
return err
}
return tpl.List(quotes, p.Page, count).Render(c.Request().Context(), c.Response())
2024-10-06 17:04:37 +03:00
}