refactor: apply MSA naming standard for DTOs and Scaffold template (Req->Request, Res->Response)
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 30s
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 30s
This commit is contained in:
@@ -77,7 +77,7 @@ public class MockEimsHttpServer {
|
||||
log.info(" [가짜 ESB 서버] MCI String 요청 수신 완료!");
|
||||
log.info(" 수신된 String 전문: {}", payload);
|
||||
|
||||
// MciSampleStringRes 에 맞게 고정 길이 응답 생성
|
||||
// MciSampleStringResponse 에 맞게 고정 길이 응답 생성
|
||||
// name (10), age (3), joinDate (8), statusCode (2)
|
||||
// targetList (30) -> MciSampleTargetDto (itemCode 5, itemValue 5) x 3
|
||||
return "홍길동 03020260901OKA0001B0001A0002B0002A0003B0003";
|
||||
|
||||
@@ -74,7 +74,7 @@ public class AxhubEaiComponent {
|
||||
}
|
||||
|
||||
/**
|
||||
* EAI 호출 (Res body class와 rcvSvcId 없는 경우)
|
||||
* EAI 호출 (Response body class와 rcvSvcId 없는 경우)
|
||||
*/
|
||||
public <O, I> Transfer<O> call(String itrfId, I inputDTO) throws Exception {
|
||||
String className = inputDTO.getClass().getSimpleName();
|
||||
|
||||
@@ -137,7 +137,7 @@ public class AxhubMciComponent {
|
||||
}
|
||||
|
||||
/**
|
||||
* 대내 mci 호출 (Res body class와 rcvSvcId 없는 경우)
|
||||
* 대내 mci 호출 (Response body class와 rcvSvcId 없는 경우)
|
||||
* @param itrfName 인터페이스Id
|
||||
* @param inputDTO 수신서비스Id (클래스명 대체)
|
||||
* @return Transfer
|
||||
|
||||
@@ -100,7 +100,7 @@ public class ToolScaffolder {
|
||||
|
||||
StringBuilder log = new StringBuilder();
|
||||
|
||||
// Generate Req DTO
|
||||
// Generate Request DTO
|
||||
String reqContent = """
|
||||
package %s.dto;
|
||||
|
||||
@@ -110,7 +110,7 @@ public class ToolScaffolder {
|
||||
|
||||
/**
|
||||
* @package %s.dto
|
||||
* @className %sReq
|
||||
* @className %sRequest
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author %s
|
||||
* @create %s
|
||||
@@ -124,7 +124,7 @@ public class ToolScaffolder {
|
||||
*/
|
||||
@Data
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class %sReq {
|
||||
public class %sRequest {
|
||||
@McpParameter(description = "수신자 전화번호", required = true)
|
||||
private String phoneNumber;
|
||||
|
||||
@@ -132,9 +132,9 @@ public class ToolScaffolder {
|
||||
private String message;
|
||||
}
|
||||
""".formatted(BASE_PACKAGE, BASE_PACKAGE, BASE_PACKAGE, baseName, author, createDate, createDate, author, baseName);
|
||||
Files.writeString(dtoDir.resolve(baseName + "Req.java"), reqContent);
|
||||
Files.writeString(dtoDir.resolve(baseName + "Request.java"), reqContent);
|
||||
|
||||
// Generate Res DTO
|
||||
// Generate Response DTO
|
||||
String resContent = """
|
||||
package %s.dto;
|
||||
|
||||
@@ -143,7 +143,7 @@ public class ToolScaffolder {
|
||||
|
||||
/**
|
||||
* @package %s.dto
|
||||
* @className %sRes
|
||||
* @className %sResponse
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author %s
|
||||
* @create %s
|
||||
@@ -157,23 +157,23 @@ public class ToolScaffolder {
|
||||
*/
|
||||
@Data
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class %sRes {
|
||||
public class %sResponse {
|
||||
private String status;
|
||||
private String message;
|
||||
// TODO: Add response fields here
|
||||
}
|
||||
""".formatted(BASE_PACKAGE, BASE_PACKAGE, baseName, author, createDate, createDate, author, baseName);
|
||||
Files.writeString(dtoDir.resolve(baseName + "Res.java"), resContent);
|
||||
Files.writeString(dtoDir.resolve(baseName + "Response.java"), resContent);
|
||||
|
||||
String toolName = baseName.isEmpty() ? baseName : Character.toLowerCase(baseName.charAt(0)) + baseName.substring(1);
|
||||
|
||||
String serviceInterfaceContent = """
|
||||
package %s.service;
|
||||
|
||||
import %s.dto.%sReq;
|
||||
import %s.dto.%sRequest;
|
||||
|
||||
public interface %sService {
|
||||
Object execute(%sReq req);
|
||||
Object execute(%sRequest req);
|
||||
}
|
||||
""".formatted(BASE_PACKAGE, BASE_PACKAGE, baseName, baseName, baseName);
|
||||
|
||||
@@ -188,8 +188,8 @@ public class ToolScaffolder {
|
||||
|
||||
import %s.annotation.McpFunction;
|
||||
import %s.annotation.McpTool;
|
||||
import %s.dto.%sReq;
|
||||
import %s.dto.%sRes;
|
||||
import %s.dto.%sRequest;
|
||||
import %s.dto.%sResponse;
|
||||
import %s.service.%sService;
|
||||
import io.shinhanlife.dap.common.integration.mci.component.AxhubMciComponent;
|
||||
import io.shinhanlife.glow.communication.dto.Transfer;
|
||||
@@ -198,7 +198,7 @@ public class ToolScaffolder {
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.util.Map;
|
||||
import %s.converter.%sLegacyConverter;
|
||||
import %s.legacy.%sLegacyReq;
|
||||
import %s.legacy.%sLegacyRequest;
|
||||
|
||||
/**
|
||||
* @package %s.service.impl
|
||||
@@ -237,16 +237,16 @@ public class ToolScaffolder {
|
||||
requiresApproval = false,
|
||||
openWorldHint = true
|
||||
)
|
||||
public Object execute(%sReq req) {
|
||||
public Object execute(%sRequest req) {
|
||||
log.info("[MCI Tool] {} 요청 수신.", "%s");
|
||||
try {
|
||||
// MapStruct를 이용한 자동 매핑 (AI DTO -> MCI DTO)
|
||||
%sLegacyReq legacyReq = converter.toLegacyReq(req);
|
||||
%sLegacyRequest legacyRequest = converter.toLegacyRequest(req);
|
||||
|
||||
Transfer<Object> resTransfer = mci.callTo(
|
||||
"%s",
|
||||
null,
|
||||
legacyReq,
|
||||
legacyRequest,
|
||||
Object.class
|
||||
);
|
||||
return resTransfer.getBody() != null ? resTransfer.getBody() : Map.of("status", "SUCCESS");
|
||||
@@ -284,8 +284,8 @@ public class ToolScaffolder {
|
||||
|
||||
import %s.annotation.McpFunction;
|
||||
import %s.annotation.McpTool;
|
||||
import %s.dto.%sReq;
|
||||
import %s.dto.%sRes;
|
||||
import %s.dto.%sRequest;
|
||||
import %s.dto.%sResponse;
|
||||
import %s.service.%sService;
|
||||
import %s.service.AbstractMcpToolService;
|
||||
import %s.converter.%sLegacyConverter;
|
||||
@@ -328,9 +328,9 @@ public class ToolScaffolder {
|
||||
register = %s,
|
||||
requiresApproval = false
|
||||
)
|
||||
public Object execute(%sReq req) {
|
||||
// %sLegacyReq legacyReq = converter.toLegacyReq(req);
|
||||
return executeLegacy("%s", "%s", req); // Or pass legacyReq
|
||||
public Object execute(%sRequest req) {
|
||||
// %sLegacyRequest legacyRequest = converter.toLegacyRequest(req);
|
||||
return executeLegacy("%s", "%s", req); // Or pass legacyRequest
|
||||
}
|
||||
}
|
||||
""".formatted(
|
||||
@@ -364,7 +364,7 @@ public class ToolScaffolder {
|
||||
|
||||
/**
|
||||
* @package %s.legacy
|
||||
* @className %sLegacyReq
|
||||
* @className %sLegacyRequest
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author %s
|
||||
* @create %s
|
||||
@@ -377,7 +377,7 @@ public class ToolScaffolder {
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
public class %sLegacyReq {
|
||||
public class %sLegacyRequest {
|
||||
/**
|
||||
* EAI 시스템이 요구하는 수신자 번호 파라미터명
|
||||
*/
|
||||
@@ -389,7 +389,7 @@ public class ToolScaffolder {
|
||||
private String content;
|
||||
}
|
||||
""".formatted(BASE_PACKAGE, BASE_PACKAGE, baseName, author, createDate, createDate, author, baseName);
|
||||
Files.writeString(legacyDtoDir.resolve(baseName + "LegacyReq.java"), legacyReqContent);
|
||||
Files.writeString(legacyDtoDir.resolve(baseName + "LegacyRequest.java"), legacyReqContent);
|
||||
|
||||
String legacyResContent = """
|
||||
package %s.legacy;
|
||||
@@ -398,7 +398,7 @@ public class ToolScaffolder {
|
||||
|
||||
/**
|
||||
* @package %s.legacy
|
||||
* @className %sLegacyRes
|
||||
* @className %sLegacyResponse
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author %s
|
||||
* @create %s
|
||||
@@ -411,19 +411,19 @@ public class ToolScaffolder {
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
public class %sLegacyRes {
|
||||
public class %sLegacyResponse {
|
||||
// TODO: Add legacy response fields here
|
||||
}
|
||||
""".formatted(BASE_PACKAGE, BASE_PACKAGE, baseName, author, createDate, createDate, author, baseName);
|
||||
Files.writeString(legacyDtoDir.resolve(baseName + "LegacyRes.java"), legacyResContent);
|
||||
Files.writeString(legacyDtoDir.resolve(baseName + "LegacyResponse.java"), legacyResContent);
|
||||
|
||||
String converterContent = """
|
||||
package %s.converter;
|
||||
|
||||
import %s.dto.%sReq;
|
||||
import %s.dto.%sRes;
|
||||
import %s.legacy.%sLegacyReq;
|
||||
import %s.legacy.%sLegacyRes;
|
||||
import %s.dto.%sRequest;
|
||||
import %s.dto.%sResponse;
|
||||
import %s.legacy.%sLegacyRequest;
|
||||
import %s.legacy.%sLegacyResponse;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
@@ -447,13 +447,13 @@ public class ToolScaffolder {
|
||||
|
||||
@Mapping(source = "phoneNumber", target = "phone")
|
||||
@Mapping(source = "message", target = "content")
|
||||
%sLegacyReq toLegacyReq(%sReq req);
|
||||
%sLegacyRequest toLegacyRequest(%sRequest req);
|
||||
|
||||
@Mapping(source = "phone", target = "phoneNumber")
|
||||
@Mapping(source = "content", target = "message")
|
||||
%sReq toReq(%sLegacyReq legacyReq);
|
||||
%sRequest toRequest(%sLegacyRequest legacyRequest);
|
||||
|
||||
// %sRes toRes(%sLegacyRes legacyRes);
|
||||
// %sResponse toResponse(%sLegacyResponse legacyResponse);
|
||||
}
|
||||
""".formatted(
|
||||
BASE_PACKAGE,
|
||||
@@ -471,10 +471,10 @@ public class ToolScaffolder {
|
||||
log.append("=========================================\n");
|
||||
log.append("[Service Interface] ").append(serviceDir.resolve(baseName + "Service.java")).append("\n");
|
||||
log.append("[Service Impl] ").append(serviceImplDir.resolve(baseName + "ServiceImpl.java")).append("\n");
|
||||
log.append("[Req DTO] ").append(dtoDir.resolve(baseName + "Req.java")).append("\n");
|
||||
log.append("[Res DTO] ").append(dtoDir.resolve(baseName + "Res.java")).append("\n");
|
||||
log.append("[Legacy Req DTO] ").append(legacyDtoDir.resolve(baseName + "LegacyReq.java")).append("\n");
|
||||
log.append("[Legacy Res DTO] ").append(legacyDtoDir.resolve(baseName + "LegacyRes.java")).append("\n");
|
||||
log.append("[Request DTO] ").append(dtoDir.resolve(baseName + "Request.java")).append("\n");
|
||||
log.append("[Response DTO] ").append(dtoDir.resolve(baseName + "Response.java")).append("\n");
|
||||
log.append("[Legacy Request DTO] ").append(legacyDtoDir.resolve(baseName + "LegacyRequest.java")).append("\n");
|
||||
log.append("[Legacy Response DTO] ").append(legacyDtoDir.resolve(baseName + "LegacyResponse.java")).append("\n");
|
||||
log.append("[Legacy Converter] ").append(converterDir.resolve(baseName + "LegacyConverter.java")).append("\n");
|
||||
log.append("\n Tip: ").append(interfaceId).append(" 목업 데이터를 mock-responses.json에 추가하세요.\n");
|
||||
|
||||
|
||||
@@ -34,5 +34,5 @@ public interface SampleLegacyConverter {
|
||||
@Mapping(source = "userId", target = "customerId")
|
||||
@Mapping(source = "actionType", target = "interfaceId")
|
||||
@Mapping(source = "extraInfo", target = "requestDetails")
|
||||
SampleLegacyReqDto toLegacyReq(SampleAiReqDto aiReq);
|
||||
SampleLegacyReqDto toLegacyRequest(SampleAiReqDto aiRequest);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class SampleLegacyConverterTest {
|
||||
.build();
|
||||
|
||||
// when: MapStruct 자동 생성 매퍼를 통해 1줄로 변환
|
||||
SampleLegacyReqDto mciDto = sampleLegacyConverter.toLegacyReq(aiDto);
|
||||
SampleLegacyReqDto mciDto = sampleLegacyConverter.toLegacyRequest(aiDto);
|
||||
|
||||
// then: 콘솔에 결과 출력 및 값 검증
|
||||
System.out.println("====== MapStruct 변환 테스트 결과 ======");
|
||||
|
||||
Reference in New Issue
Block a user