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 java.util.UUID
import ltd.hlaeja.controller.validation.CreateGroup import ltd.hlaeja.controller.validation.CreateGroup
import ltd.hlaeja.controller.validation.EditGroup import ltd.hlaeja.controller.validation.EditGroup
import ltd.hlaeja.util.Pagination
import ltd.hlaeja.exception.NoChangeException import ltd.hlaeja.exception.NoChangeException
import ltd.hlaeja.exception.NotFoundException import ltd.hlaeja.exception.NotFoundException
import ltd.hlaeja.exception.UsernameDuplicateException import ltd.hlaeja.exception.UsernameDuplicateException
import ltd.hlaeja.form.AccountForm import ltd.hlaeja.form.AccountForm
import ltd.hlaeja.service.AccountRegistryService 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.toAccountForm
import ltd.hlaeja.util.toAccountRequest import ltd.hlaeja.util.toAccountRequest
import ltd.hlaeja.util.validationErrors import ltd.hlaeja.util.validationErrors
@@ -30,12 +34,6 @@ import reactor.core.publisher.Mono
class AccountController( class AccountController(
private val accountRegistryService: AccountRegistryService, 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}") @GetMapping("/edit-{account}")
fun getEditAccount( fun getEditAccount(

View File

@@ -2,8 +2,12 @@ package ltd.hlaeja.controller
import jakarta.validation.constraints.Max import jakarta.validation.constraints.Max
import jakarta.validation.constraints.Min import jakarta.validation.constraints.Min
import ltd.hlaeja.util.Pagination
import ltd.hlaeja.service.DeviceRegistryService 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.stereotype.Controller
import org.springframework.ui.Model import org.springframework.ui.Model
import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.GetMapping
@@ -14,12 +18,6 @@ import reactor.core.publisher.Mono
class DeviceController( class DeviceController(
private val deviceRegistryService: DeviceRegistryService, 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( @GetMapping(
"/device", "/device",

View File

@@ -3,12 +3,16 @@ package ltd.hlaeja.controller
import jakarta.validation.constraints.Max import jakarta.validation.constraints.Max
import jakarta.validation.constraints.Min import jakarta.validation.constraints.Min
import java.util.UUID import java.util.UUID
import ltd.hlaeja.util.Pagination
import ltd.hlaeja.exception.NoChangeException import ltd.hlaeja.exception.NoChangeException
import ltd.hlaeja.exception.NotFoundException import ltd.hlaeja.exception.NotFoundException
import ltd.hlaeja.exception.TypeNameDuplicateException import ltd.hlaeja.exception.TypeNameDuplicateException
import ltd.hlaeja.form.TypeForm import ltd.hlaeja.form.TypeForm
import ltd.hlaeja.service.DeviceRegistryService 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.toTypeForm
import ltd.hlaeja.util.toTypeRequest import ltd.hlaeja.util.toTypeRequest
import ltd.hlaeja.util.validationErrors import ltd.hlaeja.util.validationErrors
@@ -26,12 +30,6 @@ import reactor.core.publisher.Mono
class TypeController( class TypeController(
private val deviceRegistryService: DeviceRegistryService, 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( @GetMapping(
"/type", "/type",

View File

@@ -7,12 +7,21 @@ data class Pagination(
val items: Int, val items: Int,
val defaultSize: 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 hasMore: Boolean = show == items
val showSize: Boolean = show != defaultSize val showSize: Boolean = show != defaultSize
val first: Boolean = page <= 1 val first: Boolean = page <= STEEP
val previous: Int = page - 1 val previous: Int = page - STEEP
val next: Int = page + 1 val next: Int = page + STEEP
val start: Int = previous * show + 1 val start: Int = previous * show + STEEP
val end: Int = page * show val end: Int = page * show
val size: Int = previous * show + items val size: Int = previous * show + items
} }