fix: fix&refactor

This commit is contained in:
Vyacheslav1557 2025-03-29 03:28:31 +05:00
parent 8eef7a95fb
commit 16c689403f
2 changed files with 18 additions and 9 deletions

View file

@ -4,3 +4,10 @@ type Pagination struct {
Page int32 `json:"page"` Page int32 `json:"page"`
Total int32 `json:"total"` Total int32 `json:"total"`
} }
func Total(count int32, pageSize int32) int32 {
if count%pageSize == 0 {
return count / pageSize
}
return count/pageSize + 1
}

View file

@ -215,26 +215,28 @@ func (c *Caller) ListUsers(ctx context.Context, filters models.UsersListFilters)
return nil, pkg.Wrap(pkg.ErrBadInput, nil, op, "limit > 20") return nil, pkg.Wrap(pkg.ErrBadInput, nil, op, "limit > 20")
} }
usersList := &models.UsersList{ var list []*models.User
Users: make([]*models.User, 0),
Pagination: models.Pagination{},
}
query := c.db.Rebind(ListUsers) query := c.db.Rebind(ListUsers)
err := c.db.SelectContext(ctx, &usersList.Users, query, filters.PageSize, filters.Offset()) err := c.db.SelectContext(ctx, &list, query, filters.PageSize, filters.Offset())
if err != nil { if err != nil {
return nil, handlePgErr(err, op) return nil, handlePgErr(err, op)
} }
query = c.db.Rebind(CountUsers) query = c.db.Rebind(CountUsers)
err = c.db.GetContext(ctx, &usersList.Pagination.Total, query) var count int32
err = c.db.GetContext(ctx, &count, query)
if err != nil { if err != nil {
return nil, handlePgErr(err, op) return nil, handlePgErr(err, op)
} }
usersList.Pagination.Page = filters.Page return &models.UsersList{
Users: list,
return usersList, nil Pagination: models.Pagination{
Total: models.Total(count, filters.PageSize),
Page: filters.Page,
},
}, nil
} }
func handlePgErr(err error, op string) error { func handlePgErr(err error, op string) error {