diff options
Diffstat (limited to 'pkg/handler/quote/random.go')
-rw-r--r-- | pkg/handler/quote/random.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/pkg/handler/quote/random.go b/pkg/handler/quote/random.go new file mode 100644 index 0000000..1e04ff0 --- /dev/null +++ b/pkg/handler/quote/random.go @@ -0,0 +1,18 @@ +package quote + +import ( + "github.com/labstack/echo/v4" + "sh.org.ru/pkg/model" + "sh.org.ru/pkg/tpl" +) + +func (h *Handler) Random(c echo.Context) error { + quotes := make([]model.Quote, 0, 20) + err := h.db.NewRaw(`select q.* from quotes q where q.approved = true order by random() limit 20`). + Scan(c.Request().Context(), "es) + if err != nil { + return err + } + + return tpl.Random(quotes).Render(c.Request().Context(), c.Response()) +} |