TA 역할 Spring 경계 smoke #7
1 changed files with 39 additions and 0 deletions
39
src/main/java/com/klaroworks/runtime/dto/ApiResponse.java
Normal file
39
src/main/java/com/klaroworks/runtime/dto/ApiResponse.java
Normal file
|
|
@ -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<T> {
|
||||
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 <T> ApiResponse<T> success(T data) {
|
||||
return ApiResponse.<T>builder().success(true).data(data)
|
||||
.timestamp(Instant.now().toString()).build();
|
||||
}
|
||||
|
||||
public static <T> ApiResponse<T> error(ErrorCode code) {
|
||||
return ApiResponse.<T>builder().success(false)
|
||||
.error(ErrorInfo.builder().code(code.getCode()).message(code.getMessage()).build())
|
||||
.timestamp(Instant.now().toString()).build();
|
||||
}
|
||||
|
||||
public static <T> ApiResponse<T> error(ErrorCode code, Object details) {
|
||||
return ApiResponse.<T>builder().success(false)
|
||||
.error(ErrorInfo.builder().code(code.getCode()).message(code.getMessage()).details(details).build())
|
||||
.timestamp(Instant.now().toString()).build();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue