Skip to content

Commit

Permalink
chore: Policy exception 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
pkl0912 committed Oct 25, 2024
1 parent 131da33 commit 54f0c09
Show file tree
Hide file tree
Showing 6 changed files with 113 additions and 1 deletion.
20 changes: 20 additions & 0 deletions src/main/java/server/poptato/policy/api/PolicyController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package server.poptato.policy.api;

import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import server.poptato.global.response.BaseResponse;
import server.poptato.policy.application.PolicyService;
import server.poptato.policy.domain.entity.Policy;

@RestController
@RequiredArgsConstructor
public class PolicyController {
private final PolicyService policyService;

@GetMapping("/policy")
public BaseResponse<Policy> getTodayList(){
Policy policy = policyService.getPrivacyPolicy();
return new BaseResponse<>(policy);
}
}
19 changes: 19 additions & 0 deletions src/main/java/server/poptato/policy/application/PolicyService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package server.poptato.policy.application;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import server.poptato.policy.domain.entity.Policy;
import server.poptato.policy.domain.repository.PolicyRepository;
import server.poptato.policy.exception.PolicyException;

import static server.poptato.policy.exception.errorcode.PolicyExceptionErrorCode.POLICY_NOT_FOUND_EXCEPTION;

@Service
@RequiredArgsConstructor
public class PolicyService {
private final PolicyRepository policyRepository;
public Policy getPrivacyPolicy() {
return policyRepository.findTopByOrderByCreatedAtDesc()
.orElseThrow(() -> new PolicyException(POLICY_NOT_FOUND_EXCEPTION));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ public class Policy {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Lob
@Column(columnDefinition = "LONGTEXT")
private String content;

@CreatedDate
@Column(updatable = false)
private LocalDateTime createDate;
private LocalDateTime createdAt;
}
14 changes: 14 additions & 0 deletions src/main/java/server/poptato/policy/exception/PolicyException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package server.poptato.policy.exception;

import lombok.Getter;
import server.poptato.global.response.status.ResponseStatus;

@Getter
public class PolicyException extends RuntimeException{
private final ResponseStatus exceptionStatus;

public PolicyException(ResponseStatus exceptionStatus) {
super(exceptionStatus.getMessage());
this.exceptionStatus = exceptionStatus;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package server.poptato.policy.exception.errorcode;

import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import server.poptato.global.response.status.ResponseStatus;

@RequiredArgsConstructor
public enum PolicyExceptionErrorCode implements ResponseStatus {

/**
* 7000: Policy 도메인 오류
*/

POLICY_NOT_FOUND_EXCEPTION(7000, HttpStatus.NOT_FOUND.value(), "개인정보처리방침이 존재하지 않습니다");


private final int code;
private final int status;
private final String message;


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

@Override
public int getStatus() {
return status;
}

@Override
public String getMessage() {
return message;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package server.poptato.policy.exception.handler;

import lombok.extern.slf4j.Slf4j;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import server.poptato.global.response.BaseErrorResponse;
import server.poptato.policy.exception.PolicyException;

@Slf4j
@Order(1)
@RestControllerAdvice
public class PolicyExceptionHandler {
@ResponseStatus(HttpStatus.NOT_FOUND)
@ExceptionHandler(PolicyException.class)
public BaseErrorResponse handlePolicyException(PolicyException e) {
log.error("[PolicyException: handle_PolicyException 호출]", e);
return new BaseErrorResponse(e.getExceptionStatus(), e.getMessage());
}
}

0 comments on commit 54f0c09

Please sign in to comment.