Skip to content

Commit

Permalink
🔀 :: (#285) Error Response Status
Browse files Browse the repository at this point in the history
  • Loading branch information
leeseojune53 authored Jan 11, 2023
2 parents e90a404 + 8879d37 commit 3e9b477
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@ public List<Relation> findFriendList(Long userId) {
@Override
public Optional<Relation> findRelationBySendUserIdAndReceiveUserId(
Long sendUserId, Long receiveUserId) {
return Optional.of(
return Optional.ofNullable(
queryFactory
.selectFrom(relation)
.where(
relation.isFriend
.eq(false)
.and(friendPredicated(sendUserId, receiveUserId)))
.fetchFirst());
.fetchOne());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import io.github.depromeet.knockknockbackend.global.error.exception.KnockException;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
Expand All @@ -21,35 +20,36 @@ public class ExceptionFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
throws IOException {
try {
filterChain.doFilter(request, response);
} catch (KnockException e) {
response.getWriter()
.write(
objectMapper.writeValueAsString(
getErrorResponse(
e.getErrorCode(), request.getRequestURL().toString())));
writeErrorResponse(response, e.getErrorCode(), request.getRequestURL().toString());
} catch (Exception e) {
if (e.getCause() instanceof KnockException) {
response.getWriter()
.write(
objectMapper.writeValueAsString(
getErrorResponse(
((KnockException) e.getCause()).getErrorCode(),
request.getRequestURL().toString())));
writeErrorResponse(
response,
((KnockException) e.getCause()).getErrorCode(),
request.getRequestURL().toString());
} else {
e.printStackTrace();
getErrorResponse(
ErrorCode.INTERNAL_SERVER_ERROR, request.getRequestURL().toString());
writeErrorResponse(
response,
ErrorCode.INTERNAL_SERVER_ERROR,
request.getRequestURL().toString());
}
} finally {
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
}
}

private ErrorResponse getErrorResponse(ErrorCode errorCode, String path) {
return new ErrorResponse(
errorCode.getStatus(), errorCode.getCode(), errorCode.getReason(), path);
private void writeErrorResponse(HttpServletResponse response, ErrorCode errorCode, String path)
throws IOException {
ErrorResponse errorResponse =
new ErrorResponse(
errorCode.getStatus(), errorCode.getCode(), errorCode.getReason(), path);

response.setStatus(errorCode.getStatus());
response.setCharacterEncoding("UTF-8");
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.getWriter().write(objectMapper.writeValueAsString(errorResponse));
}
}

0 comments on commit 3e9b477

Please sign in to comment.