From 865eac2286419b1d27887d5aacb488e951cf5520 Mon Sep 17 00:00:00 2001 From: Swordsteel Date: Sat, 30 Nov 2024 17:47:38 +0100 Subject: [PATCH] add NodeService --- .../kotlin/ltd/hlaeja/service/NodeService.kt | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/kotlin/ltd/hlaeja/service/NodeService.kt diff --git a/src/main/kotlin/ltd/hlaeja/service/NodeService.kt b/src/main/kotlin/ltd/hlaeja/service/NodeService.kt new file mode 100644 index 0000000..f44fa79 --- /dev/null +++ b/src/main/kotlin/ltd/hlaeja/service/NodeService.kt @@ -0,0 +1,32 @@ +package ltd.hlaeja.service + +import java.util.UUID +import ltd.hlaeja.entity.NodeEntity +import ltd.hlaeja.repository.NodeRepository +import mu.KotlinLogging +import org.springframework.stereotype.Service +import reactor.core.publisher.Mono +import org.springframework.http.HttpStatus.NOT_FOUND +import org.springframework.web.server.ResponseStatusException + +private val log = KotlinLogging.logger {} + +@Service +class NodeService( + private val repository: NodeRepository, +) { + fun getConfiguration( + node: UUID, + ): Mono = repository.findById(node) + .switchIfEmpty(deviceNotFound(node)) + + fun updateDevice( + nodeEntity: NodeEntity, + ): Mono = repository.save(nodeEntity) + + private fun deviceNotFound( + node: UUID, + ): Mono = Mono.error( + ResponseStatusException(NOT_FOUND, "Node: $node do not exists".also { log.info { it } }), + ) +}