Skip to content

Commit 05a589e

Browse files
feat: merge all not found errors into one
Signed-off-by: Joris Mancini <[email protected]>
1 parent ae53776 commit 05a589e

22 files changed

+210
-238
lines changed

src/main/java/org/gridsuite/study/server/error/RestResponseEntityExceptionHandler.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,9 @@ protected RestResponseEntityExceptionHandler(ServerNameProvider serverNameProvid
2828
@Override
2929
protected HttpStatus mapStatus(StudyBusinessErrorCode studyBusinessErrorCode) {
3030
return switch (studyBusinessErrorCode) {
31-
case ELEMENT_NOT_FOUND,
32-
STUDY_NOT_FOUND,
33-
NODE_NOT_FOUND,
34-
ROOT_NETWORK_NOT_FOUND,
35-
LOADFLOW_NOT_FOUND,
36-
SECURITY_ANALYSIS_NOT_FOUND,
37-
SENSITIVITY_ANALYSIS_NOT_FOUND,
38-
SHORT_CIRCUIT_ANALYSIS_NOT_FOUND,
39-
PCC_MIN_NOT_FOUND,
31+
case NOT_FOUND,
4032
NO_VOLTAGE_INIT_RESULTS_FOR_NODE
4133
-> HttpStatus.NOT_FOUND;
42-
case CASE_NOT_FOUND -> HttpStatus.FAILED_DEPENDENCY;
4334
case COMPUTATION_RUNNING,
4435
NOT_ALLOWED,
4536
BAD_NODE_TYPE,

src/main/java/org/gridsuite/study/server/error/StudyBusinessErrorCode.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,18 @@
1212
* @author Joris Mancini <joris.mancini_externe at rte-france.com>
1313
*/
1414
public enum StudyBusinessErrorCode implements BusinessErrorCode {
15-
ELEMENT_NOT_FOUND("study.elementNotFound"),
16-
STUDY_NOT_FOUND("study.studyNotFound"),
17-
CASE_NOT_FOUND("study.caseNotFound"),
15+
NOT_FOUND("study.notFound"),
1816
COMPUTATION_RUNNING("study.computationRunning"),
1917
LOADFLOW_ERROR("study.loadflowError"),
20-
SECURITY_ANALYSIS_NOT_FOUND("study.securityAnalysisNotFound"),
21-
SENSITIVITY_ANALYSIS_NOT_FOUND("study.sensitivityAnalysisNotFound"),
22-
SHORT_CIRCUIT_ANALYSIS_NOT_FOUND("study.shortCircuitAnalysisNotFound"),
23-
LOADFLOW_NOT_FOUND("study.loadflowNotFound"),
2418
NOT_ALLOWED("study.notAllowed"),
2519
CANT_DELETE_ROOT_NODE("study.cantDeleteRootNode"),
2620
MOVE_NETWORK_MODIFICATION_FORBIDDEN("study.moveNetworkModificationForbidden"),
2721
BAD_NODE_TYPE("study.badNodeType"),
28-
NODE_NOT_FOUND("study.nodeNotFound"),
2922
NODE_NOT_BUILT("study.nodeNotBuilt"),
3023
NODE_NAME_ALREADY_EXIST("study.nodeNameAlreadyExist"),
3124
TIME_SERIES_BAD_TYPE("study.timeSeriesBadType"),
3225
NO_VOLTAGE_INIT_RESULTS_FOR_NODE("study.noVoltageInitResultsForNode"),
33-
PCC_MIN_NOT_FOUND("study.pccMinNotFound"),
3426
MAX_NODE_BUILDS_EXCEEDED("study.maxNodeBuildsExceeded"),
35-
ROOT_NETWORK_NOT_FOUND("study.rootNetworkNotFound"),
3627
ROOT_NETWORK_DELETE_FORBIDDEN("study.rootNetworkDeleteForbidden"),
3728
MAXIMUM_ROOT_NETWORK_BY_STUDY_REACHED("study.maximumRootNetworkByStudyReached"),
3829
MAXIMUM_TAG_LENGTH_EXCEEDED("study.maximumTagLengthExceeded"),

src/main/java/org/gridsuite/study/server/service/CaseService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import static org.gridsuite.study.server.StudyConstants.CASE_API_VERSION;
2626
import static org.gridsuite.study.server.StudyConstants.DELIMITER;
27-
import static org.gridsuite.study.server.error.StudyBusinessErrorCode.CASE_NOT_FOUND;
27+
import static org.gridsuite.study.server.error.StudyBusinessErrorCode.NOT_FOUND;
2828

2929
@Service
3030
public class CaseService {
@@ -80,7 +80,7 @@ public UUID duplicateCase(UUID caseUuid, Boolean withExpiration) {
8080

8181
public void assertCaseExists(UUID caseUuid) {
8282
if (caseUuid != null && Boolean.FALSE.equals(caseExists(caseUuid))) {
83-
throw new StudyException(CASE_NOT_FOUND, "The case '" + caseUuid + "' does not exist");
83+
throw new StudyException(NOT_FOUND, "The case '" + caseUuid + "' does not exist");
8484
}
8585
}
8686

src/main/java/org/gridsuite/study/server/service/NetworkModificationTreeService.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ public NodeEntity createRoot(StudyEntity study) {
410410

411411
@Transactional
412412
public RootNode getStudyTree(UUID studyId, UUID rootNetworkUuid) {
413-
NodeEntity rootNode = nodesRepository.findByStudyIdAndType(studyId, NodeType.ROOT).orElseThrow(() -> new StudyException(NODE_NOT_FOUND));
413+
NodeEntity rootNode = nodesRepository.findByStudyIdAndType(studyId, NodeType.ROOT).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found"));
414414
RootNode studyTree = (RootNode) getStudySubtree(studyId, rootNode.getIdNode(), rootNetworkUuid);
415415
if (studyTree != null) {
416416
studyTree.setStudyId(studyId);
@@ -419,12 +419,12 @@ public RootNode getStudyTree(UUID studyId, UUID rootNetworkUuid) {
419419
}
420420

421421
private void completeNodeInfos(List<AbstractNode> nodes, UUID rootNetworkUuid) {
422-
RootNetworkEntity rootNetworkEntity = rootNetworkService.getRootNetwork(rootNetworkUuid).orElseThrow(() -> new StudyException(ROOT_NETWORK_NOT_FOUND));
422+
RootNetworkEntity rootNetworkEntity = rootNetworkService.getRootNetwork(rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found"));
423423
nodes.forEach(nodeInfo -> {
424424
if (nodeInfo instanceof RootNode rootNode) {
425425
rootNode.setReportUuid(rootNetworkEntity.getReportUuid());
426426
} else {
427-
((NetworkModificationNode) nodeInfo).completeDtoFromRootNetworkNodeInfo(rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeInfo.getId(), rootNetworkEntity.getId()).orElseThrow(() -> new StudyException(ROOT_NETWORK_NOT_FOUND)));
427+
((NetworkModificationNode) nodeInfo).completeDtoFromRootNetworkNodeInfo(rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeInfo.getId(), rootNetworkEntity.getId()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")));
428428
}
429429
});
430430
}
@@ -557,15 +557,15 @@ private boolean isEditedNode(AbstractNode node) {
557557
}
558558

559559
private NodeEntity getNodeEntity(UUID nodeId) {
560-
return nodesRepository.findById(nodeId).orElseThrow(() -> new StudyException(NODE_NOT_FOUND));
560+
return nodesRepository.findById(nodeId).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found"));
561561
}
562562

563563
public RootNodeInfoEntity getRootNodeInfoEntity(UUID nodeId) {
564-
return rootNodeInfoRepository.findById(nodeId).orElseThrow(() -> new StudyException(NODE_NOT_FOUND));
564+
return rootNodeInfoRepository.findById(nodeId).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found"));
565565
}
566566

567567
public NetworkModificationNodeInfoEntity getNetworkModificationNodeInfoEntity(UUID nodeId) {
568-
return networkModificationNodeInfoRepository.findById(nodeId).orElseThrow(() -> new StudyException(NODE_NOT_FOUND));
568+
return networkModificationNodeInfoRepository.findById(nodeId).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found"));
569569
}
570570

571571
private AbstractNodeInfoEntity getNodeInfoEntity(UUID nodeUuid) {
@@ -587,7 +587,7 @@ public AbstractNode getNode(UUID nodeId, UUID rootNetworkUuid) {
587587
}
588588

589589
public UUID getStudyRootNodeUuid(UUID studyId) {
590-
return nodesRepository.findByStudyIdAndType(studyId, NodeType.ROOT).orElseThrow(() -> new StudyException(ELEMENT_NOT_FOUND)).getIdNode();
590+
return nodesRepository.findByStudyIdAndType(studyId, NodeType.ROOT).orElseThrow(() -> new StudyException(NOT_FOUND, "Root node not found")).getIdNode();
591591
}
592592

593593
private void assertNodeNameNotExist(UUID studyUuid, String nodeName) {
@@ -713,7 +713,7 @@ public String getVariantId(UUID nodeUuid, UUID rootNetworkUuid) {
713713
return "";
714714
}
715715

716-
return rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(ROOT_NETWORK_NOT_FOUND)).getVariantId();
716+
return rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getVariantId();
717717
}
718718

719719
@Transactional(readOnly = true)
@@ -752,7 +752,7 @@ public UUID getReportUuid(UUID nodeUuid, UUID rootNetworkUuid) {
752752
if (nodeEntity.getType().equals(NodeType.ROOT)) {
753753
return rootNetworkService.getRootReportUuid(rootNetworkUuid);
754754
} else {
755-
return rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(ROOT_NETWORK_NOT_FOUND)).getModificationReports().get(nodeUuid);
755+
return rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationReports().get(nodeUuid);
756756
}
757757
}
758758

@@ -784,7 +784,7 @@ public void restoreNode(UUID studyId, List<UUID> nodeIds, UUID anchorNodeId) {
784784
for (UUID nodeId : nodeIds) {
785785
NodeEntity nodeToRestore = getNodeEntity(nodeId);
786786
NodeEntity anchorNode = getNodeEntity(anchorNodeId);
787-
NetworkModificationNodeInfoEntity modificationNodeToRestore = networkModificationNodeInfoRepository.findById(nodeToRestore.getIdNode()).orElseThrow(() -> new StudyException(NODE_NOT_FOUND));
787+
NetworkModificationNodeInfoEntity modificationNodeToRestore = networkModificationNodeInfoRepository.findById(nodeToRestore.getIdNode()).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found"));
788788
if (self.isNodeNameExists(studyId, modificationNodeToRestore.getName())) {
789789
String newName = getSuffixedNodeName(studyId, modificationNodeToRestore.getName());
790790
modificationNodeToRestore.setName(newName);
@@ -814,7 +814,7 @@ public void updateComputationReportUuid(UUID nodeUuid, UUID rootNetworkUuid, Com
814814

815815
@Transactional
816816
public Map<String, UUID> getComputationReports(UUID nodeUuid, UUID rootNetworkUuid) {
817-
return rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NODE_NOT_FOUND)).getComputationReports();
817+
return rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found")).getComputationReports();
818818
}
819819

820820
@Transactional
@@ -824,12 +824,12 @@ public void setModificationReports(UUID nodeUuid, UUID rootNetworkUuid, Map<UUID
824824

825825
@Transactional
826826
public Map<UUID, UUID> getModificationReports(UUID nodeUuid, UUID rootNetworkUuid) {
827-
return rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NODE_NOT_FOUND)).getModificationReports();
827+
return rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found")).getModificationReports();
828828
}
829829

830830
private void restoreNodeChildren(UUID studyId, UUID parentNodeId) {
831831
getChildren(parentNodeId).forEach(nodeEntity -> {
832-
NetworkModificationNodeInfoEntity modificationNodeToRestore = networkModificationNodeInfoRepository.findById(nodeEntity.getIdNode()).orElseThrow(() -> new StudyException(NODE_NOT_FOUND));
832+
NetworkModificationNodeInfoEntity modificationNodeToRestore = networkModificationNodeInfoRepository.findById(nodeEntity.getIdNode()).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found"));
833833
if (self.isNodeNameExists(studyId, modificationNodeToRestore.getName())) {
834834
String newName = getSuffixedNodeName(studyId, modificationNodeToRestore.getName());
835835
modificationNodeToRestore.setName(newName);
@@ -854,7 +854,7 @@ private void getBuildInfos(NodeEntity nodeEntity, UUID rootNetworkUuid, BuildInf
854854
AbstractNode node = getSimpleNode(nodeEntity.getIdNode());
855855
if (node.getType() == NodeType.NETWORK_MODIFICATION) {
856856
NetworkModificationNode modificationNode = (NetworkModificationNode) node;
857-
RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeEntity.getIdNode(), rootNetworkUuid).orElseThrow(() -> new StudyException(ROOT_NETWORK_NOT_FOUND));
857+
RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeEntity.getIdNode(), rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found"));
858858
if (!rootNetworkNodeInfoEntity.getNodeBuildStatus().toDto().isBuilt()) {
859859
UUID reportUuid = getModificationReportUuid(nodeEntity.getIdNode(), rootNetworkUuid, nodeToBuildUuid);
860860
buildInfos.insertModificationInfos(modificationNode.getModificationGroupUuid(), rootNetworkNodeInfoEntity.getModificationsUuidsToExclude(), new ReportInfos(reportUuid, modificationNode.getId()));
@@ -877,7 +877,7 @@ public BuildInfos getBuildInfos(UUID nodeUuid, UUID rootNetworkUuid) {
877877
getBuildInfos(entity, rootNetworkUuid, buildInfos, nodeUuid);
878878
}
879879
}, () -> {
880-
throw new StudyException(ELEMENT_NOT_FOUND);
880+
throw new StudyException(NOT_FOUND, "Node not found");
881881
});
882882

883883
return buildInfos;
@@ -1032,7 +1032,7 @@ private void fillIndexedNodeTreeInfosToInvalidate(NodeEntity nodeEntity, UUID ro
10321032
@Transactional
10331033
public void updateNodeBuildStatus(UUID nodeUuid, UUID rootNetworkUuid, NodeBuildStatus nodeBuildStatus) {
10341034
UUID studyId = self.getStudyUuidForNodeId(nodeUuid);
1035-
RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(ROOT_NETWORK_NOT_FOUND));
1035+
RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found"));
10361036
NodeEntity nodeEntity = getNodeEntity(nodeUuid);
10371037
NodeBuildStatusEmbeddable currentNodeStatus = rootNetworkNodeInfoEntity.getNodeBuildStatus();
10381038

@@ -1066,7 +1066,7 @@ public NodeBuildStatus getNodeBuildStatus(UUID nodeUuid, UUID rootNetworkUuid) {
10661066
return NodeBuildStatus.from(BuildStatus.NOT_BUILT);
10671067
}
10681068

1069-
RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(ROOT_NETWORK_NOT_FOUND));
1069+
RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found"));
10701070
return rootNetworkNodeInfoEntity.getNodeBuildStatus().toDto();
10711071
}
10721072

@@ -1086,7 +1086,7 @@ private NodeEntity doGetLastParentNodeBuilt(NodeEntity nodeEntity, UUID rootNetw
10861086
if (nodeEntity.getType() == NodeType.ROOT) {
10871087
return nodeEntity;
10881088
} else if (rootNetworkNodeInfoService
1089-
.getRootNetworkNodeInfo(nodeEntity.getIdNode(), rootNetworkUuid).orElseThrow(() -> new StudyException(ROOT_NETWORK_NOT_FOUND))
1089+
.getRootNetworkNodeInfo(nodeEntity.getIdNode(), rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found"))
10901090
.getNodeBuildStatus().toDto().isBuilt()) {
10911091
return nodeEntity;
10921092
} else {
@@ -1108,7 +1108,7 @@ public Boolean isReadOnly(UUID nodeUuid) {
11081108
public UUID getParentNode(UUID nodeUuid, NodeType nodeType) {
11091109
Optional<UUID> parentNodeUuidOpt = doGetParentNode(nodeUuid, nodeType);
11101110
if (parentNodeUuidOpt.isEmpty()) {
1111-
throw new StudyException(ELEMENT_NOT_FOUND);
1111+
throw new StudyException(NOT_FOUND, "Node not found");
11121112
}
11131113

11141114
return parentNodeUuidOpt.get();

src/main/java/org/gridsuite/study/server/service/PccMinService.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,8 @@
2020
import org.springframework.http.HttpEntity;
2121
import org.springframework.http.HttpHeaders;
2222
import org.springframework.http.HttpMethod;
23-
import org.springframework.http.HttpStatus;
2423
import org.springframework.http.MediaType;
2524
import org.springframework.stereotype.Service;
26-
import org.springframework.web.client.HttpStatusCodeException;
2725
import org.springframework.web.client.RestTemplate;
2826
import org.springframework.web.util.UriComponentsBuilder;
2927

@@ -38,7 +36,6 @@
3836

3937
import static org.gridsuite.study.server.StudyConstants.*;
4038
import static org.gridsuite.study.server.error.StudyBusinessErrorCode.COMPUTATION_RUNNING;
41-
import static org.gridsuite.study.server.error.StudyBusinessErrorCode.PCC_MIN_NOT_FOUND;
4239

4340
/**
4441
* @author Maissa SOUISSI <maissa.souissi at rte-france.com>
@@ -120,17 +117,10 @@ public String getPccMinStatus(UUID resultUuid) {
120117
if (resultUuid == null) {
121118
return null;
122119
}
123-
try {
124-
String path = UriComponentsBuilder
125-
.fromPath(DELIMITER + PCC_MIN_API_VERSION + "/results/{resultUuid}/status")
126-
.buildAndExpand(resultUuid).toUriString();
127-
return restTemplate.getForObject(pccMinServerBaseUri + path, String.class);
128-
} catch (HttpStatusCodeException e) {
129-
if (HttpStatus.NOT_FOUND.equals(e.getStatusCode())) {
130-
throw new StudyException(PCC_MIN_NOT_FOUND);
131-
}
132-
throw e;
133-
}
120+
String path = UriComponentsBuilder
121+
.fromPath(DELIMITER + PCC_MIN_API_VERSION + "/results/{resultUuid}/status")
122+
.buildAndExpand(resultUuid).toUriString();
123+
return restTemplate.getForObject(pccMinServerBaseUri + path, String.class);
134124
}
135125

136126
public void deletePccMinResults(List<UUID> resultsUuids) {

0 commit comments

Comments
 (0)