extract defualt values to Pagination

This commit is contained in:
2025-08-18 09:48:01 +02:00
parent c0257ee0b2
commit 40bc9f073e
4 changed files with 28 additions and 25 deletions

View File

@@ -5,12 +5,16 @@ import jakarta.validation.constraints.Min
import java.util.UUID
import ltd.hlaeja.controller.validation.CreateGroup
import ltd.hlaeja.controller.validation.EditGroup
import ltd.hlaeja.util.Pagination
import ltd.hlaeja.exception.NoChangeException
import ltd.hlaeja.exception.NotFoundException
import ltd.hlaeja.exception.UsernameDuplicateException
import ltd.hlaeja.form.AccountForm
import ltd.hlaeja.service.AccountRegistryService
import ltd.hlaeja.util.Pagination
import ltd.hlaeja.util.Pagination.Companion.DEFAULT_PAGE
import ltd.hlaeja.util.Pagination.Companion.DEFAULT_SIZE
import ltd.hlaeja.util.Pagination.Companion.MAX
import ltd.hlaeja.util.Pagination.Companion.MIN
import ltd.hlaeja.util.toAccountForm
import ltd.hlaeja.util.toAccountRequest
import ltd.hlaeja.util.validationErrors
@@ -30,12 +34,6 @@ import reactor.core.publisher.Mono
class AccountController(
private val accountRegistryService: AccountRegistryService,
) {
companion object {
const val DEFAULT_PAGE: Int = 1
const val DEFAULT_SIZE: Int = 25
const val MIN: Long = 1
const val MAX: Long = 100
}
@GetMapping("/edit-{account}")
fun getEditAccount(

View File

@@ -2,8 +2,12 @@ package ltd.hlaeja.controller
import jakarta.validation.constraints.Max
import jakarta.validation.constraints.Min
import ltd.hlaeja.util.Pagination
import ltd.hlaeja.service.DeviceRegistryService
import ltd.hlaeja.util.Pagination
import ltd.hlaeja.util.Pagination.Companion.DEFAULT_PAGE
import ltd.hlaeja.util.Pagination.Companion.DEFAULT_SIZE
import ltd.hlaeja.util.Pagination.Companion.MAX
import ltd.hlaeja.util.Pagination.Companion.MIN
import org.springframework.stereotype.Controller
import org.springframework.ui.Model
import org.springframework.web.bind.annotation.GetMapping
@@ -14,12 +18,6 @@ import reactor.core.publisher.Mono
class DeviceController(
private val deviceRegistryService: DeviceRegistryService,
) {
companion object {
const val DEFAULT_PAGE: Int = 1
const val DEFAULT_SIZE: Int = 25
const val MIN: Long = 1
const val MAX: Long = 100
}
@GetMapping(
"/device",

View File

@@ -3,12 +3,16 @@ package ltd.hlaeja.controller
import jakarta.validation.constraints.Max
import jakarta.validation.constraints.Min
import java.util.UUID
import ltd.hlaeja.util.Pagination
import ltd.hlaeja.exception.NoChangeException
import ltd.hlaeja.exception.NotFoundException
import ltd.hlaeja.exception.TypeNameDuplicateException
import ltd.hlaeja.form.TypeForm
import ltd.hlaeja.service.DeviceRegistryService
import ltd.hlaeja.util.Pagination
import ltd.hlaeja.util.Pagination.Companion.DEFAULT_PAGE
import ltd.hlaeja.util.Pagination.Companion.DEFAULT_SIZE
import ltd.hlaeja.util.Pagination.Companion.MAX
import ltd.hlaeja.util.Pagination.Companion.MIN
import ltd.hlaeja.util.toTypeForm
import ltd.hlaeja.util.toTypeRequest
import ltd.hlaeja.util.validationErrors
@@ -26,12 +30,6 @@ import reactor.core.publisher.Mono
class TypeController(
private val deviceRegistryService: DeviceRegistryService,
) {
companion object {
const val DEFAULT_PAGE: Int = 1
const val DEFAULT_SIZE: Int = 25
const val MIN: Long = 1
const val MAX: Long = 100
}
@GetMapping(
"/type",

View File

@@ -7,12 +7,21 @@ data class Pagination(
val items: Int,
val defaultSize: Int,
) {
companion object {
const val DEFAULT_PAGE: Int = 1
const val DEFAULT_SIZE: Int = 25
const val MIN: Long = 1
const val MAX: Long = 100
const val STEEP: Int = 1
}
val hasMore: Boolean = show == items
val showSize: Boolean = show != defaultSize
val first: Boolean = page <= 1
val previous: Int = page - 1
val next: Int = page + 1
val start: Int = previous * show + 1
val first: Boolean = page <= STEEP
val previous: Int = page - STEEP
val next: Int = page + STEEP
val start: Int = previous * show + STEEP
val end: Int = page * show
val size: Int = previous * show + items
}