From 9523311710da66c6e3b922f1f080becdd1fa39d6 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Wed, 3 Jul 2024 16:11:46 +0200 Subject: [PATCH] simplified code --- .../calender/api/KalenderRestController.java | 33 +++++-- .../calender/api/RequestInterceptor.java | 97 +++++++++++-------- 2 files changed, 83 insertions(+), 47 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 7b5fe01..457b1b1 100644 --- a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java +++ b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java @@ -283,6 +283,10 @@ public class KalenderRestController { public ChangeUpdateRequest updateChange(@RequestBody ChangeUpdateRequest request, HttpServletRequest httpRequest) throws ARException, ValidationError { httpRequest.setAttribute("requestBody", request); + + String formName = (request.getState() == 0) ? "ASF:WI_TAS_Paket" : "CHG:Infrastructure Change"; + httpRequest.setAttribute("formName", formName); + change.modifyTimestamp(request); return request; } @@ -304,6 +308,7 @@ public class KalenderRestController { throws ARException { logRequest("/updateState", request.toString()); httpRequest.setAttribute("requestBody", request); + httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions"); var response = stateChange.createStateChange(request); return ResponseEntity.ok(response); } @@ -322,6 +327,7 @@ public class KalenderRestController { public ResponseEntity updateImplementer(@RequestBody ImplementerUpdateRequest request, HttpServletRequest httpRequest) throws ARException { httpRequest.setAttribute("requestBody", request); + httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions"); var response = implementer.update(request); return ResponseEntity.ok(response); } @@ -341,6 +347,7 @@ public class KalenderRestController { public ResponseEntity updateApproval(@RequestBody ApprovalUpdateRequest request, HttpServletRequest httpRequest) throws ARException { httpRequest.setAttribute("requestBody", request); + httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions"); var response = approval.update(request); return ResponseEntity.ok(response); } @@ -363,9 +370,11 @@ public class KalenderRestController { @CrossOrigin("*") @PostMapping("/api/savePreset") @ResponseBody - public List savePreset(@RequestBody Preset request) + public List savePreset(@RequestBody Preset request, HttpServletRequest httpRequest) throws ARException, ValidationError, NotFoundError { Presets presets = new Presets(javaAPI); + httpRequest.setAttribute("requestBody", request); + httpRequest.setAttribute("formName", "ASF:CHG_CAL_FilterDefinitions"); presets.savePreset(request); return presets.getAll(); } @@ -373,8 +382,12 @@ public class KalenderRestController { @CrossOrigin("*") @PostMapping("/api/selectPreset") @ResponseBody - public boolean selectPreset(@RequestBody SelectPresetRequest guid) throws ARException, + public boolean selectPreset(@RequestBody SelectPresetRequest guid, HttpServletRequest httpRequest) + throws ARException, NotFoundError { + httpRequest.setAttribute("requestBody", guid); + httpRequest.setAttribute("formName", "ASF:CHG_CAL_UserPreferences"); + Presets presets = new Presets(javaAPI); return presets.selectPreset(guid); } @@ -390,8 +403,10 @@ public class KalenderRestController { @CrossOrigin("*") @PostMapping("api/updatePreset") @ResponseBody - public List updatePreset(@RequestBody UpdatePresetRequest request) throws NotFoundError, ARException { + public List updatePreset(@RequestBody UpdatePresetRequest request, HttpServletRequest httpRequest) throws NotFoundError, ARException { Presets presets = new Presets(javaAPI); + httpRequest.setAttribute("requestBody", request); + httpRequest.setAttribute("formName", "ASF:CHG_CAL_FilterDefinitions"); presets.updatePreset(request); return presets.getAll(); } @@ -399,8 +414,10 @@ public class KalenderRestController { @CrossOrigin("*") @PostMapping("api/deletePreset") @ResponseBody - public Object deletePreset(@RequestBody DeletePresetRequest request) throws ARException, NotFoundError { + public Object deletePreset(@RequestBody DeletePresetRequest request, HttpServletRequest httpRequest) throws ARException, NotFoundError { Presets presets = new Presets(javaAPI); + httpRequest.setAttribute("requestBody", request); + httpRequest.setAttribute("formName", "ASF:CHG_CAL_FilterDefinitions"); presets.deletePreset(request); return presets.getAll(); } @@ -408,8 +425,10 @@ public class KalenderRestController { @CrossOrigin @PostMapping("api/renamePreset") @ResponseBody - public List renamePreset(@RequestBody RenamePresetRequest request) throws NotFoundError, ARException { + public List renamePreset(@RequestBody RenamePresetRequest request, HttpServletRequest httpRequest) throws NotFoundError, ARException { Presets presets = new Presets(javaAPI); + httpRequest.setAttribute("requestBody", request); + httpRequest.setAttribute("formName", "ASF:CHG_CAL_FilterDefinitions"); presets.renamePreset(request); return presets.getAll(); } @@ -417,8 +436,10 @@ public class KalenderRestController { @CrossOrigin("*") @PostMapping("api/editUserPreferences") @ResponseBody - public void editUserPreferences(@RequestBody EditUserPreferencesRequest request) throws ARException, NotFoundError { + public void editUserPreferences(@RequestBody EditUserPreferencesRequest request, HttpServletRequest httpRequest) throws ARException, NotFoundError { Presets presets = new Presets(javaAPI); + httpRequest.setAttribute("requestBody", request); + httpRequest.setAttribute("formName", "ASF:CHG_CAL_UserPreferences"); presets.editUserPreferences(request); } diff --git a/backend/src/main/java/com/nttdata/calender/api/RequestInterceptor.java b/backend/src/main/java/com/nttdata/calender/api/RequestInterceptor.java index f16443f..2b9dcad 100644 --- a/backend/src/main/java/com/nttdata/calender/api/RequestInterceptor.java +++ b/backend/src/main/java/com/nttdata/calender/api/RequestInterceptor.java @@ -9,16 +9,24 @@ import org.springframework.web.servlet.HandlerInterceptor; import com.nttdata.calender.approval.ApprovalUpdateRequest; import com.nttdata.calender.changes.ChangeUpdateRequest; import com.nttdata.calender.implementer.ImplementerUpdateRequest; +import com.nttdata.calender.presets.Preset; +import com.nttdata.calender.presets.SelectPresetRequest; +import com.nttdata.calender.presets.UpdatePresetRequest; import com.nttdata.calender.states.StateChangeRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.bmc.arsys.api.Value; + +import static org.mockito.ArgumentMatchers.startsWith; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @Component public class RequestInterceptor implements HandlerInterceptor { + private RemedyJavaAPI api; + private final static String form = "ASF:CHG_CAL_Transactions"; private static final Logger logger = LogManager.getLogger("application"); private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -26,6 +34,7 @@ public class RequestInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + api = new RemedyJavaAPI(); String currentDateTime = LocalDateTime.now().format(dateTimeFormatter); long transactionId = System.currentTimeMillis(); String out = String.format("Transaction ID = %d %s - handling request: %s", transactionId, currentDateTime, @@ -34,55 +43,61 @@ public class RequestInterceptor implements HandlerInterceptor { return true; } - private static String output(String time, long id, String user, String status, String action, String ticket, - String result) { - return String.format( - "%s\n Transaction ID: %d\n User: %s\n Status: %s\n Action: %s\n Ticket: %s\n Result: %s", - time, id, user, status, action, ticket, result); - } - @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { - if ("POST".equalsIgnoreCase(request.getMethod())) { - String currentDateTime = LocalDateTime.now().format(dateTimeFormatter); - long transactionId = System.currentTimeMillis(); - String changeNr = ""; - if (handler instanceof HandlerMethod) { - HandlerMethod handlerMethod = (HandlerMethod) handler; - String action = handlerMethod.getMethod().getName(); - Object requestBody = request.getAttribute("requestBody"); + if (!"POST".equalsIgnoreCase(request.getMethod()) || !(handler instanceof HandlerMethod)) { + return; + } - if (requestBody instanceof ChangeUpdateRequest) { - ChangeUpdateRequest changeUpdateRequest = (ChangeUpdateRequest) requestBody; - changeNr += changeUpdateRequest.getChangeNr(); - action += " | Date change"; - } else if (requestBody instanceof StateChangeRequest) { - StateChangeRequest changeStateRequest = (StateChangeRequest) requestBody; - changeNr += changeStateRequest.getChangeNr(); - action += " | State transition"; - } else if (requestBody instanceof ImplementerUpdateRequest) { - ImplementerUpdateRequest implementerUpdateRequest = (ImplementerUpdateRequest) requestBody; - action += " | Implementer Update"; - } else if (requestBody instanceof ApprovalUpdateRequest) { - ApprovalUpdateRequest approvalUpdateRequest = (ApprovalUpdateRequest) requestBody; - action += " | Approval Update"; - } + long transactionId = System.currentTimeMillis(); + Query entry = null; - String status = (ex == null) ? "Success" : "Error"; - String result = (ex == null) ? "Successful" : ex.getMessage(); - String out = output(currentDateTime, transactionId, "User", status, - request.getRequestURI() + " | " + action, changeNr, result); + Object requestBody = request.getAttribute("requestBody"); + String formName = (String) request.getAttribute("formName"); + int status = (ex == null) ? 3 : 2; - if (ex == null) { - logger.info(out); - } else { - logger.error(out); - } + if (requestBody instanceof ChangeUpdateRequest) { + entry = buildQueryEntry(transactionId, "Date change", formName, ((ChangeUpdateRequest) requestBody).getChangeNr(), getAssignedTo(), status); + } else if (requestBody instanceof StateChangeRequest) { + entry = buildQueryEntry(transactionId, "State transition", formName, ((StateChangeRequest) requestBody).getChangeNr(), getAssignedTo(), status); + } else if (requestBody instanceof ImplementerUpdateRequest) { + entry = buildQueryEntry(transactionId, "Implementer Update", formName, ((ImplementerUpdateRequest) requestBody).getPkgId(), getAssignedTo(), status); + } else if (requestBody instanceof ApprovalUpdateRequest) { + entry = buildQueryEntry(transactionId, "Approval Update", formName, ((ApprovalUpdateRequest) requestBody).getChangeNr(), getAssignedTo(), status); + } else if (requestBody instanceof Preset) { + entry = buildQueryEntry(transactionId, "Save Preset", formName, ((Preset) requestBody).getId(), getAssignedTo(), status); + } else if (requestBody instanceof SelectPresetRequest) { + entry = buildQueryEntry(transactionId, "Preset selected", formName, ((SelectPresetRequest) requestBody).getGuid(), getAssignedTo(), status); + } else if (requestBody instanceof UpdatePresetRequest) { + entry = buildQueryEntry(transactionId, "Update Preset", formName, ((UpdatePresetRequest) requestBody).getId(), getAssignedTo(), status); + } - System.out.println("\n" + out); - } + if (entry != null) { + api.createEntry(entry); } } + + private Query buildQueryEntry(long transactionId, String actionType, String affectedForm, String changeNr, + String assignedTo, int status) { + return new Query.QueryBuilder(form) + .addFieldValue("AssignedTo", 4, new Value(assignedTo)) + .addFieldValue("Status", 7, new Value(status)) + .addFieldValue("TransactionID", 666000000, new Value(transactionId)) + .addFieldValue("FieldValue", 666000001, new Value( + "Die Felder und Werte die verändert wurde, z.B.: {\"6000434\" : \"24.05.2024 13:00:45\"}")) + .addFieldValue("FormIDs", 666000002, + new Value("Die Request IDs (1er Feld / entryid) der Einträge, die modifiziert werden")) + .addFieldValue("ActionType", 666000003, new Value(actionType)) + .addFieldValue("AffectedForm", 666000004, new Value(affectedForm)) + .addFieldValue("TicketID", 666000005, new Value(changeNr)) + .build(); + } + + private String getAssignedTo() { + String assignedTo = api.getUser(); + return (assignedTo == null || assignedTo.isEmpty()) ? "Placeholder User" : assignedTo; + } + }