Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion goorm/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(21)
}
}

Expand Down
15 changes: 0 additions & 15 deletions goorm/src/main/java/study/goorm/GoormApplication.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"member_id", "history_id"}))

public class MemberLike extends BaseEntity {

@Id
Expand Down
11 changes: 11 additions & 0 deletions goorm/src/main/java/study/goorm/domain/model/TestException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package study.goorm.domain.model;

import study.goorm.global.error.code.BaseErrorCode;
import study.goorm.global.exception.GeneralException;

public class TestException extends GeneralException {

public TestException(BaseErrorCode code) {
super(code);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package study.goorm.domain.model.api;

import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import study.goorm.domain.model.TestException;
import study.goorm.global.common.response.BaseResponse;
import study.goorm.global.error.code.status.ErrorStatus;
import study.goorm.global.error.code.status.SuccessStatus;

@RestController
@RequiredArgsConstructor
@RequestMapping("/test")
public class TestController {

@GetMapping("/execute")
public BaseResponse<Void> test(@RequestParam String error){

if(error.equals("yes")){
throw new TestException(ErrorStatus._BAD_REQUEST);
}

return BaseResponse.onSuccess(SuccessStatus.OK,null);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package study.goorm.global.common.response;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Getter;
import study.goorm.global.error.code.BaseCode;
import study.goorm.global.error.code.BaseErrorCode;


@Getter
@AllArgsConstructor
@JsonPropertyOrder({"isSuccess", "code", "message", "result"})
public class BaseResponse<T> {

@JsonProperty("isSuccess")
private final Boolean isSuccess;
private final String code;
private final String message;
@JsonInclude(JsonInclude.Include.NON_NULL)
private T result;


public static <T> BaseResponse<T> onSuccess(BaseCode code, T result) {
return new BaseResponse<>(
true,
code.getCode(),
code.getMessage(),
result);
}

public static <T> BaseResponse<T> onFailure(BaseErrorCode code, T result) {
return new BaseResponse<>(
false,
code.getCode(),
code.getMessage(),
result);
}

}
10 changes: 10 additions & 0 deletions goorm/src/main/java/study/goorm/global/error/code/BaseCode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package study.goorm.global.error.code;

public interface BaseCode {

String getCode();

String getMessage();

ReasonDTO getReasonHttpStatus();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package study.goorm.global.error.code;

public interface BaseErrorCode {

String getCode();

String getMessage();

ErrorReasonDTO getReasonHttpStatus();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package study.goorm.global.error.code;

import lombok.Builder;
import lombok.Getter;
import org.springframework.http.HttpStatus;

@Getter
@Builder
public class ErrorReasonDTO {
private final HttpStatus httpStatus;
private final String code;
private final String message;
private final boolean isSuccess;
}
15 changes: 15 additions & 0 deletions goorm/src/main/java/study/goorm/global/error/code/ReasonDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package study.goorm.global.error.code;

import lombok.Builder;
import lombok.Getter;
import org.springframework.http.HttpStatus;

@Getter
@Builder
public class ReasonDTO {

private final HttpStatus httpStatus;
private final boolean isSuccess;
private final String code;
private final String message;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package study.goorm.global.error.code.status;

import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.http.HttpStatus;
import study.goorm.global.error.code.BaseErrorCode;
import study.goorm.global.error.code.ErrorReasonDTO;

@Getter
@AllArgsConstructor
public enum ErrorStatus implements BaseErrorCode {

// 기본 에러
_INTERNAL_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "COMMON500", "서버 에러, 관리자에게 문의 바랍니다."),
_BAD_REQUEST(HttpStatus.BAD_REQUEST, "COMMON400", "잘못된 요청입니다."),
_UNAUTHORIZED(HttpStatus.UNAUTHORIZED, "COMMON401", "인증이 필요합니다."),
_FORBIDDEN(HttpStatus.FORBIDDEN, "COMMON403", "금지된 요청입니다.");

private final HttpStatus httpStatus;
private final String code;
private final String message;

@Override
public String getCode() {
return code;
}

@Override
public String getMessage() {
return message;
}

@Override
public ErrorReasonDTO getReasonHttpStatus() {
return ErrorReasonDTO.builder()
.message(message)
.code(code)
.isSuccess(false)
.httpStatus(httpStatus)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package study.goorm.global.error.code.status;

import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.http.HttpStatus;
import study.goorm.global.error.code.BaseCode;
import study.goorm.global.error.code.ReasonDTO;

@Getter
@AllArgsConstructor
public enum SuccessStatus implements BaseCode {

//Common
OK(HttpStatus.OK, "COMMON_200", "성공입니다.");

private final HttpStatus httpStatus;
private final String code;
private final String message;

@Override
public String getCode() {
return code;
}

@Override
public String getMessage() {
return message;
}

@Override
public ReasonDTO getReasonHttpStatus() {
return ReasonDTO.builder()
.message(message)
.code(code)
.isSuccess(true)
.httpStatus(httpStatus)
.build();
}
}


Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package study.goorm.global.exception;

import lombok.AllArgsConstructor;
import lombok.Getter;
import study.goorm.global.error.code.BaseErrorCode;
import study.goorm.global.error.code.ErrorReasonDTO;

@Getter
@AllArgsConstructor
public class GeneralException extends RuntimeException {

private BaseErrorCode code;

public ErrorReasonDTO getErrorReasonHttpStatus() {
return this.code.getReasonHttpStatus();
}
}
Loading