From 46761226d55f607422da8347befed440f0c9d610 Mon Sep 17 00:00:00 2001 From: cho Date: Wed, 4 Feb 2026 13:39:11 +0900 Subject: [PATCH] =?UTF-8?q?prettyformatApi=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transform/api/PrettyPrintContoller.java | 135 ++++++++++++++++++ .../transform/api/PrettyPrintRequest.java | 20 +++ .../transform/api/PrettyPrintResponse.java | 19 +++ 3 files changed, 174 insertions(+) create mode 100644 src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintContoller.java create mode 100644 src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintRequest.java create mode 100644 src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintResponse.java diff --git a/src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintContoller.java b/src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintContoller.java new file mode 100644 index 0000000..a70f593 --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintContoller.java @@ -0,0 +1,135 @@ +package com.eactive.eai.custom.transform.api; + +import java.util.List; +import java.util.Optional; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.json.simple.JSONObject; +import org.json.simple.JSONValue; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.eactive.eai.common.message.EAIMessage; +import com.eactive.eai.common.message.EAIMessageManager; +import com.eactive.eai.common.message.ServiceMessage; +import com.eactive.eai.common.util.Logger; +import com.eactive.eai.common.util.MessageUtil; +import com.eactive.eai.transformer.engine.TransformEngine; +import com.eactive.eai.transformer.engine.Transformer; +import com.eactive.eai.transformer.layout.Layout; +import com.eactive.eai.transformer.message.JSONMessage; +import com.eactive.eai.transformer.message.Message; +import com.eactive.eai.transformer.message.MessageFactory; +import com.eactive.eai.transformer.transform.Transform; +import com.eactive.eai.transformer.transform.TransformManager; +import com.fasterxml.jackson.databind.ObjectMapper; + +@Controller +public class PrettyPrintContoller { + public static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT); + + private static final String FALLBACK_ERROR_JSON = + "{ \"error\": true, \"result\": \"occur error building responseMessage.\" }"; + + @RequestMapping(value = "/PrettyPrint", method = RequestMethod.POST, consumes = "application/json", produces = "application/json; charset=UTF-8") + @ResponseBody + public ResponseEntity tokenJson(@RequestBody PrettyPrintRequest transFormRequest, HttpServletRequest request, + HttpServletResponse response) { + + PrettyPrintResponse prettyPrintResponse = new PrettyPrintResponse(); + + try { + + String layoutName = getLayoutName(transFormRequest); + + String result = Optional.ofNullable(MessageFactory.getFactory().getMessage(layoutName)) + .map(message -> { + + message.setData(transFormRequest.getBizData()); + + return message.toXMLString(); + }) + .orElseThrow(()-> new IllegalArgumentException("업무 메세지 파싱중 오류")); + + + + prettyPrintResponse.setResult(result); + String successJson = buildResponseMessage(prettyPrintResponse); + return ResponseEntity.ok(successJson); + } catch (Exception e) { + logger.error("Pretty print 실패", e); + prettyPrintResponse.setError(true); + prettyPrintResponse.setResult("잘못된 업무데이터 전문 파싱 중 에러"); + String errorJson = buildResponseMessage(prettyPrintResponse); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorJson); + } + + } + + String buildResponseMessage(PrettyPrintResponse prettyPrintResponse) { + try { + ObjectMapper mapper = new ObjectMapper(); + return mapper.writeValueAsString(prettyPrintResponse); + }catch (Exception e) { + return FALLBACK_ERROR_JSON; + } + + } + + private String getLayoutName(PrettyPrintRequest request) throws Exception { + + EAIMessageManager eaiMessageManager = EAIMessageManager.getInstance(); + + EAIMessage eaiMessage = eaiMessageManager.getEAIMessage(request.getIntrefaceId()); + + TransformManager transformManager = TransformManager.getManager(); + + if (eaiMessage == null) { + + throw new IllegalArgumentException("Invalid interfaceId=" + request.getIntrefaceId()); + + } + + List serviceMessageList = eaiMessage.getSvcMsgs(); + + ServiceMessage serviceMessage = serviceMessageList.get(0); + + String transformId; + Transform transformInfo; + Layout layout; + + switch (request.getLogProcessNo()) { + case "100": + transformId = serviceMessage.getCnvMsgID(); + transformInfo = transformManager.getTransform(transformId); + layout = transformInfo.getSourceLayout(0); + return layout.getName(); + case "200": + transformId = serviceMessage.getCnvMsgID(); + transformInfo = transformManager.getTransform(transformId); + layout = transformInfo.getTargetLayout(); + return layout.getName(); + case "300": + transformId = serviceMessage.getBsRspCnvMsgID(); + transformInfo = transformManager.getTransform(transformId); + layout = transformInfo.getSourceLayout(0); + return layout.getName(); + case "400": + transformId = serviceMessage.getBsRspCnvMsgID(); + transformInfo = transformManager.getTransform(transformId); + layout = transformInfo.getTargetLayout(); + return layout.getName(); + default: + throw new IllegalArgumentException("Invalid logProcessNo: " + request.getLogProcessNo()); + } + + } + +} diff --git a/src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintRequest.java b/src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintRequest.java new file mode 100644 index 0000000..e496433 --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintRequest.java @@ -0,0 +1,20 @@ +package com.eactive.eai.custom.transform.api; + +import java.io.Serializable; + +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; + +import lombok.Getter; +import lombok.ToString; + +@SuppressWarnings("serial") +@ToString +@Getter +public class PrettyPrintRequest implements Serializable { + private String logProcessNo; + private String intrefaceId; + private String bizData; + @JsonSetter(nulls = Nulls.SKIP) + private boolean error = false; +} diff --git a/src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintResponse.java b/src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintResponse.java new file mode 100644 index 0000000..112857f --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/transform/api/PrettyPrintResponse.java @@ -0,0 +1,19 @@ +package com.eactive.eai.custom.transform.api; + +import java.io.Serializable; + +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@SuppressWarnings("serial") +@ToString +@Setter +public class PrettyPrintResponse implements Serializable { + private String result; + @JsonSetter(nulls = Nulls.SKIP) + private boolean error = false; +}