add nodes list
- add NodeController - add getNodes to DeviceRegistryService - add WebClient deviceRegistryNodes to DeviceRegisterWebClientCalls.kt - add node list.html - add node to main menu and cleanup in layout.html - add node to AdminPaths.kt
This commit is contained in:
37
src/main/kotlin/ltd/hlaeja/controller/NodeController.kt
Normal file
37
src/main/kotlin/ltd/hlaeja/controller/NodeController.kt
Normal file
@@ -0,0 +1,37 @@
|
||||
package ltd.hlaeja.controller
|
||||
|
||||
import jakarta.validation.constraints.Max
|
||||
import jakarta.validation.constraints.Min
|
||||
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
|
||||
import org.springframework.web.bind.annotation.PathVariable
|
||||
import reactor.core.publisher.Mono
|
||||
|
||||
@Controller
|
||||
class NodeController(
|
||||
private val deviceRegistryService: DeviceRegistryService,
|
||||
) {
|
||||
@GetMapping(
|
||||
"/node",
|
||||
"/node/page-{page}",
|
||||
"/node/page-{page}/show-{show}",
|
||||
)
|
||||
fun getNodes(
|
||||
@PathVariable(required = false) @Min(MIN) page: Int = DEFAULT_PAGE,
|
||||
@PathVariable(required = false) @Min(MIN) @Max(MAX) show: Int = DEFAULT_SIZE,
|
||||
model: Model,
|
||||
) = deviceRegistryService.getNodes(page, show)
|
||||
.collectList()
|
||||
.doOnNext { items ->
|
||||
model.addAttribute("items", items)
|
||||
model.addAttribute("pagination", Pagination(page, show, items.size, DEFAULT_SIZE))
|
||||
}
|
||||
.then(Mono.just("node/list"))
|
||||
}
|
||||
Reference in New Issue
Block a user