From 640e3618ae0abb728e635ab637f2aba70e224327 Mon Sep 17 00:00:00 2001 From: bjkim Date: Wed, 15 Oct 2025 17:17:44 +0900 Subject: [PATCH] =?UTF-8?q?[MODIFY]=20=EC=99=B8=EB=B6=80=20Edge=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EB=93=B1=EB=A1=9D=20API=20?= =?UTF-8?q?=EC=88=98=EC=A0=95,=20EdgePkgInfoRequest=20DTO=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20JSON=20=EB=B3=80=ED=99=98=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/ExternalAuthController.java | 5 +-- .../payload/request/EdgePkgInfoRequest.java | 34 +++++++++++++++++++ .../autoflow/service/ExternalAuthService.java | 11 ++++-- 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 src/main/java/kr/re/etri/autoflow/payload/request/EdgePkgInfoRequest.java diff --git a/src/main/java/kr/re/etri/autoflow/controllers/ExternalAuthController.java b/src/main/java/kr/re/etri/autoflow/controllers/ExternalAuthController.java index 71e2995..20d7ff1 100644 --- a/src/main/java/kr/re/etri/autoflow/controllers/ExternalAuthController.java +++ b/src/main/java/kr/re/etri/autoflow/controllers/ExternalAuthController.java @@ -3,6 +3,7 @@ package kr.re.etri.autoflow.controllers; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import kr.re.etri.autoflow.payload.request.EdgePkgInfoRequest; import kr.re.etri.autoflow.service.ExternalAuthService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -49,11 +50,11 @@ public class ExternalAuthController { @PostMapping(value = "/add", consumes = {"multipart/form-data"}) public ResponseEntity addEdgePackage( @Parameter(description = "로그인 시 발급받은 Bearer 토큰") @RequestHeader("Authorization") String bearerToken, - @Parameter(description = "Edge 패키지 등록 요청 JSON 데이터") @RequestPart("edgePkgInfoVO") String edgePkgInfoJson, + @Parameter(description = "Edge 패키지 등록 요청 데이터") @RequestPart("edgePkgInfoVO") EdgePkgInfoRequest edgePkgInfoRequest, @Parameter(description = "업로드할 패키지 파일") @RequestPart(value = "file", required = false) MultipartFile file ) { try { - Object response = externalAuthService.uploadEdgePackage(bearerToken, edgePkgInfoJson, file); + Object response = externalAuthService.uploadEdgePackage(bearerToken, edgePkgInfoRequest, file); return ResponseEntity.ok(response); } catch (Exception e) { return ResponseEntity.internalServerError().body( diff --git a/src/main/java/kr/re/etri/autoflow/payload/request/EdgePkgInfoRequest.java b/src/main/java/kr/re/etri/autoflow/payload/request/EdgePkgInfoRequest.java new file mode 100644 index 0000000..e3f3b61 --- /dev/null +++ b/src/main/java/kr/re/etri/autoflow/payload/request/EdgePkgInfoRequest.java @@ -0,0 +1,34 @@ +package kr.re.etri.autoflow.payload.request; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.Date; +import java.util.List; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class EdgePkgInfoRequest { + private int ed_pkg_serial; + private int sw_group; + private int sw_type; + private String sw_manufacturer; + private String package_id; + private String package_name; + private String window_root_location; + private String window_exe_name; + private String linux_root_location; + private String linux_exe_name; + private Date create_datetime; + private String user_id; + private String sw_group_name; + private String sw_type_name; + private List edge_info_list; + private String auth_id; + private String secret_at; + private boolean admin_at = false; +} diff --git a/src/main/java/kr/re/etri/autoflow/service/ExternalAuthService.java b/src/main/java/kr/re/etri/autoflow/service/ExternalAuthService.java index 58624db..3c88c11 100644 --- a/src/main/java/kr/re/etri/autoflow/service/ExternalAuthService.java +++ b/src/main/java/kr/re/etri/autoflow/service/ExternalAuthService.java @@ -1,7 +1,10 @@ package kr.re.etri.autoflow.service; +import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.annotation.PostConstruct; +import kr.re.etri.autoflow.payload.request.EdgePkgInfoRequest; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ByteArrayResource; import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.util.LinkedMultiValueMap; @@ -110,16 +113,20 @@ public class ExternalAuthService { throw new RuntimeException("Failed to fetch edge package list"); } - public Object uploadEdgePackage(String bearerToken, String edgePkgInfoJson, MultipartFile file) throws IOException { + public Object uploadEdgePackage(String bearerToken, EdgePkgInfoRequest edgePkgInfoRequest, MultipartFile file) throws IOException { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.MULTIPART_FORM_DATA); headers.set("Authorization", bearerToken.startsWith("Bearer ") ? bearerToken : "Bearer " + bearerToken); + // Object를 JSON 문자열로 변환 + ObjectMapper objectMapper = new ObjectMapper(); + String edgePkgInfoJson = objectMapper.writeValueAsString(edgePkgInfoRequest); + MultiValueMap body = new LinkedMultiValueMap<>(); body.add("edgePkgInfoVO", edgePkgInfoJson); if (file != null && !file.isEmpty()) { - body.add("file", new org.springframework.core.io.ByteArrayResource(file.getBytes()) { + body.add("file", new ByteArrayResource(file.getBytes()) { @Override public String getFilename() { return file.getOriginalFilename();