Skip to content

Commit 613cf2e

Browse files
move parameters duplication
1 parent 70a430d commit 613cf2e

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

src/main/java/org/gridsuite/shortcircuit/server/ShortCircuitController.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,4 +164,12 @@ public ResponseEntity<List<LimitViolationType>> getLimitTypes() {
164164
public ResponseEntity<UUID> createParameters(@Parameter(description = "The parameters to save. It no body or empty string/json, then default parameters will be used instead.", allowEmptyValue = true) @RequestBody(required = false) @Nullable final ShortCircuitParametersInfos parameters) {
165165
return ResponseEntity.ok(shortCircuitService.createParameters(parameters));
166166
}
167+
168+
@PostMapping(value = "/parameters/{parametersUuid}/duplicate")
169+
@Operation(summary = "Create a entry for parameters")
170+
@ApiResponse(responseCode = "201", description = "A new entry has been created")
171+
@ApiResponse(responseCode = "404", description = "No parameters found with this UUID (if fallback=false)")
172+
public ResponseEntity<UUID> duplicateParameter(@Parameter(description = "Parameters UUID") @PathVariable("parametersUuid") UUID parametersUuid) {
173+
return ResponseEntity.ok(shortCircuitService.duplicateParameters(parametersUuid));
174+
}
167175
}

src/main/java/org/gridsuite/shortcircuit/server/service/ShortCircuitService.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,17 @@
1717
import org.gridsuite.shortcircuit.server.entities.FaultResultEntity;
1818
import org.gridsuite.shortcircuit.server.entities.FeederResultEntity;
1919
import org.gridsuite.shortcircuit.server.entities.ShortCircuitAnalysisResultEntity;
20+
import org.gridsuite.shortcircuit.server.entities.ShortCircuitParametersEntity;
2021
import org.gridsuite.shortcircuit.server.repositories.ShortCircuitAnalysisResultRepository;
2122
import org.gridsuite.shortcircuit.server.repositories.ShortCircuitParametersRepository;
2223
import org.slf4j.Logger;
2324
import org.slf4j.LoggerFactory;
2425
import org.springframework.data.domain.Page;
2526
import org.springframework.data.domain.Pageable;
27+
import org.springframework.http.HttpStatus;
2628
import org.springframework.stereotype.Service;
2729
import org.springframework.transaction.annotation.Transactional;
30+
import org.springframework.web.server.ResponseStatusException;
2831

2932
import java.util.*;
3033
import java.util.concurrent.TimeUnit;
@@ -173,4 +176,11 @@ public void stop(UUID resultUuid, String receiver) {
173176
public UUID createParameters(ShortCircuitParametersInfos parametersInfos) {
174177
return parametersRepository.save(EntityDtoUtils.convert(parametersInfos)).getId();
175178
}
179+
180+
public UUID duplicateParameters(final UUID parametersUuid) {
181+
return parametersRepository.save(parametersRepository.findById(parametersUuid)
182+
.map(ShortCircuitParametersEntity::new)
183+
.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Not found parameters " + parametersUuid))
184+
).getId();
185+
}
176186
}

0 commit comments

Comments
 (0)