Pagination
This commit is contained in:
@ -34,11 +34,23 @@ func applyFilter(db *gorm.DB, filter *UserFilter) *gorm.DB {
|
||||
return query
|
||||
}
|
||||
|
||||
func (repository *UsersRepository) List(filter *UserFilter) *[]models.User {
|
||||
func applyPagination(db *gorm.DB, pagination *Pagination) *gorm.DB {
|
||||
query := db
|
||||
|
||||
if pagination != nil {
|
||||
query.Limit(pagination.PageSize)
|
||||
query.Offset(pagination.PageSize * (pagination.Page - 1))
|
||||
}
|
||||
|
||||
return query
|
||||
}
|
||||
|
||||
func (repository *UsersRepository) List(filter *UserFilter, pagination *Pagination) *[]models.User {
|
||||
var users []models.User
|
||||
|
||||
query := repository.db.Model(&models.User{})
|
||||
query = applyFilter(query, filter)
|
||||
query = applyPagination(query, pagination)
|
||||
query.Find(&users)
|
||||
|
||||
return &users
|
||||
|
||||
Reference in New Issue
Block a user