
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.takensoft.common.util;
import com.takensoft.common.message.MessageCode;
import lombok.RequiredArgsConstructor;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import java.nio.charset.Charset;
/**
* @author : takensoft
* @since : 2025.01.22
* @modification
* since | author | description
* 2025.01.22 | takensoft | 최초 등록
*
* HTTP 응답 처리를 위한 유틸리티
*/
@Component
@RequiredArgsConstructor
public class ResponseUtil {
private final MessageSource messageSource;
/**
* @return JSON 응답을 위한 HttpHeaders 객체
*
* HTTp 해더 생성성
*/
private static HttpHeaders createHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
return headers;
}
/**
* @param messageCode - 메시지 코드
* @return 다국어 메시지
*
* 다국어 메시지 호출
*/
private String getMessage(MessageCode messageCode) {
return messageSource.getMessage(messageCode.getMessageKey(), null, LocaleContextHolder.getLocale());
}
/**
* @param data - 응답 데이터
* @param messageCode - 응답 메시지 코드
* @return 성공 응답 결과
*
* 성공 응답 생성
*/
public ResponseEntity<?> successRes(Object data, MessageCode messageCode) {
ResponseData responseData = new ResponseData();
responseData.setStatus(messageCode.getStatus().value());
responseData.setStatusText(messageCode.getStatus());
responseData.setMessage(getMessage(messageCode));
responseData.setData(data);
return new ResponseEntity<>(responseData, createHeaders(), HttpStatus.OK);
}
/**
* @param status - HTTP 상태 코드
* @param message - 에러 메시지
* @return 에러 응답 결과
*
* 에러 응답 생성
*/
public ResponseEntity<?> errorRes(HttpStatus status, String message) {
ResponseData responseData = new ResponseData();
responseData.setStatus(status.value());
responseData.setStatusText(status);
responseData.setMessage(message);
return new ResponseEntity<>(responseData, createHeaders(), status);
}
/**
* @param messageCode - 응답 메시지 코드
* @return 에러 응답 결과
*
* 에러 응답 생성
*/
public ResponseEntity<?> errorRes(MessageCode messageCode) {
ResponseData responseData = new ResponseData();
responseData.setStatus(messageCode.getStatus().value());
responseData.setStatusText(messageCode.getStatus());
responseData.setMessage(getMessage(messageCode));
return new ResponseEntity<>(responseData, createHeaders(), messageCode.getStatus());
}
}