diff --git a/src/main/java/org/gridsuite/mapping/server/controller/NetworkController.java b/src/main/java/org/gridsuite/mapping/server/controller/NetworkController.java index 8b90b5b4..b04559e1 100644 --- a/src/main/java/org/gridsuite/mapping/server/controller/NetworkController.java +++ b/src/main/java/org/gridsuite/mapping/server/controller/NetworkController.java @@ -73,4 +73,12 @@ public ResponseEntity getNetworkMatches(@PathVariable("networkUuid" return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(networkService.getNetworkMatches(networkUuid, ruleToMatch)); } + @DeleteMapping(path = "/{networkUuid}") + @Operation(summary = "delete the network") + @ApiResponse(responseCode = "200", description = "Network deleted") + public ResponseEntity deleteNetwork(@PathVariable("networkUuid") UUID networkUuid) { + UUID deletedNetworkUuid = networkService.deleteNetwork(networkUuid); + return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(deletedNetworkUuid); + } + } diff --git a/src/main/java/org/gridsuite/mapping/server/service/NetworkService.java b/src/main/java/org/gridsuite/mapping/server/service/NetworkService.java index 2562b428..9acb26a1 100644 --- a/src/main/java/org/gridsuite/mapping/server/service/NetworkService.java +++ b/src/main/java/org/gridsuite/mapping/server/service/NetworkService.java @@ -30,4 +30,6 @@ public interface NetworkService { Network getNetwork(UUID networkUuid); MatchedRule getNetworkMatches(UUID networkUuid, RuleToMatch ruleToMatch); + + UUID deleteNetwork(UUID networkUuid); } diff --git a/src/main/java/org/gridsuite/mapping/server/service/implementation/NetworkServiceImpl.java b/src/main/java/org/gridsuite/mapping/server/service/implementation/NetworkServiceImpl.java index 42cda2e7..35626941 100644 --- a/src/main/java/org/gridsuite/mapping/server/service/implementation/NetworkServiceImpl.java +++ b/src/main/java/org/gridsuite/mapping/server/service/implementation/NetworkServiceImpl.java @@ -101,6 +101,13 @@ public NetworkValues getNetworkValuesFromExistingNetwork(UUID networkUuid) { return new NetworkValues(networkUuid, equipmentValuesList); } + @Override + public UUID deleteNetwork(UUID networkUuid) { + networkRepository.deleteById(networkUuid); + networkStoreService.deleteNetwork(networkUuid); + return networkUuid; + } + private void setPropertyMap(HashMap> propertyMap, String value, String propertyName) { if (propertyMap.containsKey(propertyName)) { Set propertyValues = propertyMap.get(propertyName); diff --git a/src/test/java/org/gridsuite/mapping/server/NetworkControllerTest.java b/src/test/java/org/gridsuite/mapping/server/NetworkControllerTest.java index 85aef21c..985c4dde 100644 --- a/src/test/java/org/gridsuite/mapping/server/NetworkControllerTest.java +++ b/src/test/java/org/gridsuite/mapping/server/NetworkControllerTest.java @@ -126,6 +126,10 @@ public void fileTest() throws Exception { NetworkEntity actualEntity = savedNetworks.get(0); assertTrue(expectedEntity.getNetworkId().equals(actualEntity.getNetworkId()) && expectedEntity.getNetworkName().equals(actualEntity.getNetworkName())); + mvc.perform(MockMvcRequestBuilders.delete("/network/" + networkUUID)).andExpect(status().isOk()); + savedNetworks = networkRepository.findAll(); + assertEquals(0, savedNetworks.size()); + } private String network(UUID id, String name) {