From 803a09d6ffcf696986957f54d9fb48563f22bf84 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Tue, 14 Jul 2026 06:58:58 +0000 Subject: [PATCH] =?UTF-8?q?TA=20=EC=97=AD=ED=95=A0=20Spring=20=EA=B2=BD?= =?UTF-8?q?=EA=B3=84=20smoke=20(role-ta-live-1522-001)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../klaroworks/runtime/dto/ApiResponse.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/main/java/com/klaroworks/runtime/dto/ApiResponse.java diff --git a/src/main/java/com/klaroworks/runtime/dto/ApiResponse.java b/src/main/java/com/klaroworks/runtime/dto/ApiResponse.java new file mode 100644 index 0000000..e10bb94 --- /dev/null +++ b/src/main/java/com/klaroworks/runtime/dto/ApiResponse.java @@ -0,0 +1,39 @@ +package com.klaroworks.runtime.dto; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.klaroworks.runtime.exception.ErrorCode; +import lombok.*; +import java.time.Instant; + +@Data @Builder @NoArgsConstructor @AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ApiResponse { + private boolean success; + private T data; + private ErrorInfo error; + private String timestamp; + + @Data @Builder @NoArgsConstructor @AllArgsConstructor + public static class ErrorInfo { + private String code; + private String message; + private Object details; + } + + public static ApiResponse success(T data) { + return ApiResponse.builder().success(true).data(data) + .timestamp(Instant.now().toString()).build(); + } + + public static ApiResponse error(ErrorCode code) { + return ApiResponse.builder().success(false) + .error(ErrorInfo.builder().code(code.getCode()).message(code.getMessage()).build()) + .timestamp(Instant.now().toString()).build(); + } + + public static ApiResponse error(ErrorCode code, Object details) { + return ApiResponse.builder().success(false) + .error(ErrorInfo.builder().code(code.getCode()).message(code.getMessage()).details(details).build()) + .timestamp(Instant.now().toString()).build(); + } +}