/************************************************************ * * @packageName : io.company.localhost.common.dto * @fileName : ApiResponse.java * @author : 조인제 * @date : 24.12.06 * @description : * * =========================================================== * DATE AUTHOR NOTE * ----------------------------------------------------------- * 24.12.06 조인제 최초 생성 * *************************************************************/ package io.company.localhost.common.dto; import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.http.HttpStatus; @Getter @AllArgsConstructor public class ApiResponse { private int code; private HttpStatus status; private String message; private T data; public ApiResponse(HttpStatus status, String message, T data) { this.code = status.value(); this.status = status; this.message = message; this.data = data; } public static ApiResponse of(HttpStatus status, String message, T data) { return new ApiResponse<>(status, message, data); } public static ApiResponse of(HttpStatus status, T data) { return ApiResponse.of(status, status.name(), data); } public static ApiResponse ok(T data) { return ApiResponse.of(HttpStatus.OK, HttpStatus.OK.name(), data); } public static ApiResponse error(HttpStatus status, String message) { return new ApiResponse<>(status, message, null); } public static ApiResponse error(int code,HttpStatus status, String message) { return new ApiResponse<>(code,status, message, null); } public static ApiResponse okMessage(String message) { return new ApiResponse<>(HttpStatus.OK, message, null); } }