commit 1d14d217df69487e186ac3b2d323346fdc4af2b1
parent 04afc9d04e691d67056af91097a75698f5339b46
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sun, 15 Jan 2023 20:37:14 -0800
move code
Diffstat:
2 files changed, 55 insertions(+), 49 deletions(-)
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -10,7 +10,6 @@ import (
"encoding/json"
"errors"
"fmt"
- "github.com/jinzhu/gorm"
"github.com/notnil/chess"
_ "golang.org/x/image/bmp"
_ "golang.org/x/image/webp"
@@ -19,7 +18,6 @@ import (
"image/png"
"io"
"io/ioutil"
- "math"
"math/rand"
"net/http"
"net/url"
@@ -3094,53 +3092,6 @@ func ChatDeleteHandler(c echo.Context) error {
return c.Render(http.StatusOK, "chat-delete", data)
}
-type Paginator struct {
- resultsPerPage int64
- wantedPageQueryParam string
-}
-
-func NewPaginator() *Paginator {
- return &Paginator{
- wantedPageQueryParam: "p",
- resultsPerPage: 50,
- }
-}
-
-func (p *Paginator) SetResultPerPage(v int64) *Paginator {
- p.resultsPerPage = v
- return p
-}
-
-func (p *Paginator) SetWantedPageQueryParam(v string) *Paginator {
- p.wantedPageQueryParam = v
- return p
-}
-
-func (p *Paginator) Paginate(c echo.Context, query *gorm.DB) (int64, int64, int64, *gorm.DB) {
- wantedPage := utils.DoParseInt64(c.QueryParam(p.wantedPageQueryParam))
- var count int64
- query.Count(&count)
- resultsPerPage := p.resultsPerPage
- page, maxPage := paginate(resultsPerPage, wantedPage, count)
- query = query.Offset((page - 1) * resultsPerPage).Limit(resultsPerPage)
- return page, maxPage, count, query
-}
-
-func paginate(resultsPerPage, wantedPage, size int64) (page int64, maxPage int64) {
- page = wantedPage
- if page <= 1 {
- page = 1
- }
- maxPage = int64(math.Ceil(float64(size) / float64(resultsPerPage)))
- if maxPage <= 1 {
- maxPage = 1
- }
- if page > maxPage {
- page = maxPage
- }
- return
-}
-
func ChatArchiveHandler(c echo.Context) error {
authUser := c.Get("authUser").(*database.User)
var data chatArchiveData
diff --git a/pkg/web/handlers/paginator.go b/pkg/web/handlers/paginator.go
@@ -0,0 +1,55 @@
+package handlers
+
+import (
+ "dkforest/pkg/utils"
+ "github.com/jinzhu/gorm"
+ "github.com/labstack/echo"
+ "math"
+)
+
+type Paginator struct {
+ resultsPerPage int64
+ wantedPageQueryParam string
+}
+
+func NewPaginator() *Paginator {
+ return &Paginator{
+ wantedPageQueryParam: "p",
+ resultsPerPage: 50,
+ }
+}
+
+func (p *Paginator) SetResultPerPage(v int64) *Paginator {
+ p.resultsPerPage = v
+ return p
+}
+
+func (p *Paginator) SetWantedPageQueryParam(v string) *Paginator {
+ p.wantedPageQueryParam = v
+ return p
+}
+
+func (p *Paginator) Paginate(c echo.Context, query *gorm.DB) (int64, int64, int64, *gorm.DB) {
+ wantedPage := utils.DoParseInt64(c.QueryParam(p.wantedPageQueryParam))
+ var count int64
+ query.Count(&count)
+ resultsPerPage := p.resultsPerPage
+ page, maxPage := paginate(resultsPerPage, wantedPage, count)
+ query = query.Offset((page - 1) * resultsPerPage).Limit(resultsPerPage)
+ return page, maxPage, count, query
+}
+
+func paginate(resultsPerPage, wantedPage, size int64) (page int64, maxPage int64) {
+ page = wantedPage
+ if page <= 1 {
+ page = 1
+ }
+ maxPage = int64(math.Ceil(float64(size) / float64(resultsPerPage)))
+ if maxPage <= 1 {
+ maxPage = 1
+ }
+ if page > maxPage {
+ page = maxPage
+ }
+ return
+}