From 019f806662e52d3c8656233733e60bd871252b23 Mon Sep 17 00:00:00 2001 From: Niklas Haiden Date: Tue, 24 Oct 2023 19:51:32 +0200 Subject: [PATCH] add new endpointa for deletions, introduce service class for dockermachine --- .../ariesbackend/model/DockerMachine.kt | 2 +- .../service/DockerMachineService.kt | 34 +++++++++++++++++++ .../ariesbackend/web/MachineController.kt | 8 ++++- 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 src/main/kotlin/tech/niklas/ariesbackend/service/DockerMachineService.kt diff --git a/src/main/kotlin/tech/niklas/ariesbackend/model/DockerMachine.kt b/src/main/kotlin/tech/niklas/ariesbackend/model/DockerMachine.kt index a6e2de9..4f6eaae 100644 --- a/src/main/kotlin/tech/niklas/ariesbackend/model/DockerMachine.kt +++ b/src/main/kotlin/tech/niklas/ariesbackend/model/DockerMachine.kt @@ -48,7 +48,7 @@ data class DockerMachine( if (other == null || Hibernate.getClass(this) != Hibernate.getClass(other)) return false other as DockerMachine - return machineID != null && machineID == other.machineID + return machineID == other.machineID } override fun hashCode(): Int = javaClass.hashCode() diff --git a/src/main/kotlin/tech/niklas/ariesbackend/service/DockerMachineService.kt b/src/main/kotlin/tech/niklas/ariesbackend/service/DockerMachineService.kt new file mode 100644 index 0000000..b412f2d --- /dev/null +++ b/src/main/kotlin/tech/niklas/ariesbackend/service/DockerMachineService.kt @@ -0,0 +1,34 @@ +package tech.niklas.ariesbackend.service + +import tech.niklas.ariesbackend.db.DockerMachineRepository +import tech.niklas.ariesbackend.exception.MachineAlreadyExistsException +import tech.niklas.ariesbackend.model.DockerMachine +import kotlin.jvm.optionals.getOrElse + +class DockerMachineService(private val dockerMachineRepository: DockerMachineRepository, + private val dockerMachineService: DockerMachineService) { + + + fun registerNew(dockerMachine: DockerMachine): DockerMachine { + if(dockerMachineRepository.existsByMachineName(dockerMachine.machineName) ) { + throw MachineAlreadyExistsException("The machine ${dockerMachine.machineName} already exists in the database!") + } + return dockerMachineRepository.save(dockerMachine) + } + + fun getAll(): List { + return dockerMachineRepository.findAll() + } + + fun getSpecificMachine(id: String): DockerMachine { + return dockerMachineRepository.findById(id).getOrElse { + throw MachineAlreadyExistsException("not found lol") + } + } + + fun deleteMachine(id: String): String { + dockerMachineRepository.deleteById(id) + return "Deleted machine with id $id" + } + +} \ No newline at end of file diff --git a/src/main/kotlin/tech/niklas/ariesbackend/web/MachineController.kt b/src/main/kotlin/tech/niklas/ariesbackend/web/MachineController.kt index 194c170..a900075 100644 --- a/src/main/kotlin/tech/niklas/ariesbackend/web/MachineController.kt +++ b/src/main/kotlin/tech/niklas/ariesbackend/web/MachineController.kt @@ -9,7 +9,7 @@ import kotlin.jvm.optionals.getOrElse @RestController @RequestMapping("/machine") class MachineController(private val dockerMachineRepository: DockerMachineRepository) { - @PostMapping("/registernew") + @PostMapping("/new") fun registerNew(@RequestBody dockerMachine: DockerMachine): DockerMachine { if(dockerMachineRepository.existsByMachineName(dockerMachine.machineName) ) { throw MachineAlreadyExistsException("The machine ${dockerMachine.machineName} already exists in the database!") @@ -29,5 +29,11 @@ class MachineController(private val dockerMachineRepository: DockerMachineReposi } } + @DeleteMapping("/delete/{id}") + fun deleteMachine(@PathVariable id: String): String { + dockerMachineRepository.deleteById(id) + return "Deleted machine with id $id" + } + } \ No newline at end of file