localhost-back/src/main/java/io/company/localhost/common/dto/ApiResponse.java

53 lines
1.5 KiB
Java

/************************************************************
*
* @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 org.springframework.http.HttpStatus;
import lombok.Getter;
@Getter
public class ApiResponse<T> {
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 <T> ApiResponse<T> of(HttpStatus status, String message, T data) {
return new ApiResponse<>(status, message, data);
}
public static <T> ApiResponse<T> of(HttpStatus status, T data) {
return ApiResponse.of(status, status.name(), data);
}
public static <T> ApiResponse<T> ok(T data) {
return ApiResponse.of(HttpStatus.OK, HttpStatus.OK.name(), data);
}
public static <T> ApiResponse<T> error(HttpStatus status, String message) {
return new ApiResponse<>(status, message, null);
}
public static <T> ApiResponse<T> okMessage(String message) {
return new ApiResponse<>(HttpStatus.OK, message, null);
}
}