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