modified request interceptor

main
Said Gedik 2024-06-20 18:57:16 +02:00
parent 8813ed9f7d
commit d264c406bc
2 changed files with 30 additions and 29 deletions

View File

@ -300,8 +300,9 @@ public class KalenderRestController {
*/ */
@CrossOrigin("*") @CrossOrigin("*")
@PostMapping("/api/updateState") @PostMapping("/api/updateState")
public ResponseEntity<String> updateState(@RequestBody StateChangeRequest request) throws ARException { public ResponseEntity<String> updateState(@RequestBody StateChangeRequest request, HttpServletRequest httpRequest) throws ARException {
logRequest("/updateState", request.toString()); logRequest("/updateState", request.toString());
httpRequest.setAttribute("changeUpdateState", request);
var response = stateChange.createStateChange(request); var response = stateChange.createStateChange(request);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }

View File

@ -7,6 +7,7 @@ import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
import com.nttdata.calender.changes.ChangeUpdateRequest; import com.nttdata.calender.changes.ChangeUpdateRequest;
import com.nttdata.calender.states.StateChangeRequest;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -23,57 +24,56 @@ public class RequestInterceptor implements HandlerInterceptor {
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception { throws Exception {
// Print current datetime before handling the request
String currentDateTime = LocalDateTime.now().format(dateTimeFormatter); String currentDateTime = LocalDateTime.now().format(dateTimeFormatter);
long transactionId = System.currentTimeMillis(); long transactionId = System.currentTimeMillis();
String out = "Transaction ID = " + transactionId + " " + currentDateTime + " - handling request: " String out = String.format("Transaction ID = %d %s - handling request: %s", transactionId, currentDateTime,
+ request.getRequestURI(); request.getRequestURI());
logger.info(out); logger.info(out);
return true; // Continue with the request return true;
} }
private static String output(String time, long id, String user, String status, String action, String ticket, private static String output(String time, long id, String user, String status, String action, String ticket,
String result) { String result) {
return String.format("Time: %s\nTransaction ID: %d\nUser: %s\nStatus: %s\nAction: %s\nTicket: %s\nResult: %s", return String.format("%s\nTransaction ID: %d\nUser: %s\nStatus: %s\nAction: %s\nTicket: %s\nResult: %s",
time, id, user, status, action, ticket, result); time, id, user, status, action, ticket, result);
} }
@Override @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception { throws Exception {
// Only react for POST requests
if ("POST".equalsIgnoreCase(request.getMethod())) { if ("POST".equalsIgnoreCase(request.getMethod())) {
// Print current datetime after handling the request
String currentDateTime = LocalDateTime.now().format(dateTimeFormatter); String currentDateTime = LocalDateTime.now().format(dateTimeFormatter);
long transactionId = System.currentTimeMillis(); long transactionId = System.currentTimeMillis();
String changeNr = ""; String changeNr = "";
if (handler instanceof HandlerMethod) { if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod) handler; HandlerMethod handlerMethod = (HandlerMethod) handler;
if (handlerMethod.getMethod().getName().equals("updateChange")) { String action = handlerMethod.getMethod().getName();
ChangeUpdateRequest changeUpdateRequest = (ChangeUpdateRequest) request Object requestBody = request.getAttribute("requestBody");
.getAttribute("changeUpdateRequest");
if (changeUpdateRequest != null) { if (requestBody instanceof ChangeUpdateRequest) {
changeNr = changeUpdateRequest.getChangeNr(); 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";
} }
System.out.println("\n" + output(currentDateTime, transactionId, "User", "Success", request.getRequestURI(), String status = (ex == null) ? "Success" : "Error";
changeNr, "Successful")); String result = (ex == null) ? "Successful" : ex.getMessage();
} String out = output(currentDateTime, transactionId, "User", status,
request.getRequestURI() + " | " + action, changeNr, result);
// if (ex == null) { if (ex == null) {
// String out = currentDateTime + "Transaction ID = " + transactionId logger.info(out);
// + "\nDone / Success\nHandling Request: " + request.getRequestURI() + "\n"; } else {
// logger.info(out); logger.error(out);
// System.out.println(out); }
// } else {
// String out = "Transaction ID = " + transactionId + " " + currentDateTime + " [ERROR] handling request: " System.out.println("\n" + out);
// + request.getRequestURI() + "\n" + ex.getMessage() + "\n"; }
// logger.error(out);
// System.err.println(out);
// }
} }
} }
} }