From e2db14835bc49ad798158c546d9db917bff52fe4 Mon Sep 17 00:00:00 2001 From: Julius Sula Date: Tue, 23 May 2023 11:14:57 +0200 Subject: [PATCH] StateChange exceptions --- .../calender/api/KalenderRestController.java | 11 ++-- .../calender/changes/ChangeRequest.java | 2 - .../com/nttdata/calender/states/State.java | 50 +++++++------------ .../nttdata/calender/states/StateChange.java | 5 +- .../calender/states/StateChangeRequest.java | 4 +- 5 files changed, 29 insertions(+), 43 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java index 2f0618a..c5ceb8c 100644 --- a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java +++ b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java @@ -46,17 +46,19 @@ public class KalenderRestController { private final Implementer implementer; private final PackageType packageType; private final Approval approval; + private final StateChange stateChange; private static final Logger applicationLogger = LogManager.getLogger("application"); @Autowired public KalenderRestController(RemedyJavaAPI javaAPI, Change change, Implementer implementer, - PackageType packageType, Approval approval) { + PackageType packageType, Approval approval, StateChange stateChange) { this.javaAPI = javaAPI; this.change = change; this.implementer = implementer; this.packageType = packageType; this.approval = approval; + this.stateChange = stateChange; } /** @@ -70,9 +72,9 @@ public class KalenderRestController { @CrossOrigin("*") @GetMapping("/api/getStates") @ResponseBody - public ArrayList printState() throws JsonProcessingException { + public ArrayList printState() { var state = State.getInstance(); - return state.returnJson(); + return state.get(); } @CrossOrigin("*") @@ -212,8 +214,7 @@ public class KalenderRestController { */ @CrossOrigin("*") @PostMapping("/api/updateState") - public ResponseEntity updateState(@RequestBody StateChangeRequest request, - @Autowired StateChange stateChange) throws ARException { + public ResponseEntity updateState(@RequestBody StateChangeRequest request) throws ARException { logRequest("/updateState", request.toString()); var response = stateChange.createStateChange(request); return ResponseEntity.ok(response); diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeRequest.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeRequest.java index 17936e6..3e7521c 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/ChangeRequest.java +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeRequest.java @@ -5,8 +5,6 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; -import org.apache.el.util.Validation; - import com.bmc.arsys.api.ARException; import com.bmc.arsys.api.SortInfo; import com.nttdata.calender.api.Query; diff --git a/backend/src/main/java/com/nttdata/calender/states/State.java b/backend/src/main/java/com/nttdata/calender/states/State.java index 2ffccad..77777ef 100644 --- a/backend/src/main/java/com/nttdata/calender/states/State.java +++ b/backend/src/main/java/com/nttdata/calender/states/State.java @@ -10,7 +10,6 @@ import org.apache.logging.log4j.Logger; import com.bmc.arsys.api.ARException; import com.bmc.arsys.api.Entry; -import com.fasterxml.jackson.core.JsonProcessingException; import com.nttdata.calender.api.Query; import com.nttdata.calender.api.RemedyJavaAPI; @@ -69,16 +68,11 @@ public class State { * HashMap. * * @param api Remedy API object + * @throws ARException */ - public void queryState(RemedyJavaAPI api) { - - try { - queryStateNames(api); - queryPossibleStates(api); - - } catch (Exception e) { - e.printStackTrace(); - } + public void queryState(RemedyJavaAPI api) throws ARException { + queryStateNames(api); + queryPossibleStates(api); } /** @@ -153,26 +147,21 @@ public class State { * @param nameQuery Query object of stateFields */ public void updateStateNames(List stateFields, Query nameQuery) { - try { - stateFields.stream() - .filter(entry -> Optional.ofNullable(entry.get(nameQuery.getFieldId("Locale"))) - .map(Object::toString) - .orElse("") - .equals("de")) - .forEach( - entry -> { - var selectionCode = nameQuery.getFieldId("SelectionCode"); - var englishName = nameQuery.getFieldId("englishName"); - var germanName = nameQuery.getFieldId("germanName"); + stateFields.stream() + .filter(entry -> Optional.ofNullable(entry.get(nameQuery.getFieldId("Locale"))) + .map(Object::toString) + .orElse("") + .equals("de")) + .forEach( + entry -> { + var selectionCode = nameQuery.getFieldId("SelectionCode"); + var englishName = nameQuery.getFieldId("englishName"); + var germanName = nameQuery.getFieldId("germanName"); - this.getState().put(entry.get(selectionCode).getIntValue(), - new StateInfo(entry.get(englishName).toString(), - entry.get(germanName).toString())); - }); - } catch (Exception e) { - logger.error("Database entries for stateName in english and german in bad state"); - e.printStackTrace(); - } + this.getState().put(entry.get(selectionCode).getIntValue(), + new StateInfo(entry.get(englishName).toString(), + entry.get(germanName).toString())); + }); } /** @@ -183,9 +172,8 @@ public class State { * * @return Array of JSON objects with integer representation of state and * {@link StateInfo} - * @throws JsonProcessingException if an error occurs during JSON processing */ - public ArrayList returnJson() throws JsonProcessingException { + public ArrayList get() { var response = new ArrayList(); this.state.forEach((key, value) -> { response.add(new StateResponse(key, value.possibleState, value.stateNameEN, value.stateNameDE)); diff --git a/backend/src/main/java/com/nttdata/calender/states/StateChange.java b/backend/src/main/java/com/nttdata/calender/states/StateChange.java index dbd5b04..f70b02f 100644 --- a/backend/src/main/java/com/nttdata/calender/states/StateChange.java +++ b/backend/src/main/java/com/nttdata/calender/states/StateChange.java @@ -1,7 +1,7 @@ package com.nttdata.calender.states; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import com.bmc.arsys.api.ARException; import com.bmc.arsys.api.Value; @@ -13,7 +13,7 @@ import com.nttdata.calender.api.RemedyJavaAPI; * change entries on Remedy. It handles the logic of creating a new * entry with the required field values. */ -@Component +@Service public class StateChange { static final String ACTION = "STATUSCHANGE"; static final String formName = "ASF:CHG_CAL_Interactions"; @@ -39,7 +39,6 @@ public class StateChange { * @return String representing the created entry ID * @throws ARException when there's an error creating the entry */ - // TODO: implement changes from implementerChange public String createStateChange(StateChangeRequest request) throws ARException { var query = new Query.QueryBuilder(formName) .addFieldValue("ChangeNr", 666000002, new Value(request.getChangeNr())) diff --git a/backend/src/main/java/com/nttdata/calender/states/StateChangeRequest.java b/backend/src/main/java/com/nttdata/calender/states/StateChangeRequest.java index 4c5e94b..85096db 100644 --- a/backend/src/main/java/com/nttdata/calender/states/StateChangeRequest.java +++ b/backend/src/main/java/com/nttdata/calender/states/StateChangeRequest.java @@ -13,7 +13,7 @@ public class StateChangeRequest { /** * Sets the change number. * - * @param changeNr String to set representing the change number + * @param changeNr String to set representing the change number */ public void setChangeNr(String changeNr) { this.changeNr = changeNr; @@ -22,7 +22,7 @@ public class StateChangeRequest { /** * Sets the current state. * - * @param currentState an int to set representing the current state + * @param currentState an int to set representing the current state */ public void setCurrentState(int currentState) { this.currentState = currentState;