|
6 | 6 | import com.devin.dev.dto.reply.ReplyLikeDto;
|
7 | 7 | import com.devin.dev.dto.reply.ReplyMapper;
|
8 | 8 | import com.devin.dev.entity.post.Post;
|
| 9 | +import com.devin.dev.entity.post.PostStatus; |
9 | 10 | import com.devin.dev.entity.reply.Reply;
|
10 | 11 | import com.devin.dev.entity.reply.ReplyImage;
|
11 | 12 | import com.devin.dev.entity.reply.ReplyLike;
|
@@ -393,4 +394,48 @@ public DefaultResponse<ReplyDto> changeReplyLike(Long replyId, HttpServletReques
|
393 | 394 |
|
394 | 395 | return new DefaultResponse<>(StatusCode.SUCCESS, ResponseMessage.REPLY_LIKE_CHANGE_SUCCESS, replyDto);
|
395 | 396 | }
|
| 397 | + |
| 398 | + public DefaultResponse<?> selectReply(Long replyId, HttpServletRequest request) { |
| 399 | + String token = tokenProvider.parseToken(request); |
| 400 | + Long userId; |
| 401 | + if (tokenProvider.validateToken(token)) { |
| 402 | + userId = tokenProvider.getUserId(token); |
| 403 | + } else { |
| 404 | + return new DefaultResponse<>(StatusCode.FAIL_AUTH, ResponseMessage.NOT_FOUND_USER); |
| 405 | + } |
| 406 | + Optional<User> userOptional = userRepository.findById(userId); |
| 407 | + if (userOptional.isEmpty()) { |
| 408 | + return new DefaultResponse<>(StatusCode.NOT_EXIST, ResponseMessage.NOT_FOUND_USER); |
| 409 | + } |
| 410 | + User user = userOptional.get(); |
| 411 | + |
| 412 | + Optional<Reply> replyOptional = replyRepository.findById(replyId); |
| 413 | + if (replyOptional.isEmpty()) { |
| 414 | + return new DefaultResponse<>(StatusCode.NOT_EXIST, ResponseMessage.NOT_FOUND_REPLY); |
| 415 | + } |
| 416 | + Reply reply = replyOptional.get(); |
| 417 | + |
| 418 | + if (isNotSameUser(user, reply.getPost().getUser())) { |
| 419 | + return new DefaultResponse<>(StatusCode.CONDITION_FAIL, ResponseMessage.NOT_SAME_USER); |
| 420 | + } |
| 421 | + |
| 422 | + if (user.getId().equals(reply.getUser().getId())) { |
| 423 | + return new DefaultResponse<>(StatusCode.CONDITION_FAIL, ResponseMessage.SAME_USER); |
| 424 | + } |
| 425 | + |
| 426 | + user.changeExp(User.ExpChangeType.REPLY_SELECT); |
| 427 | + reply.getUser().changeExp(User.ExpChangeType.REPLY_BE_SELECTED); |
| 428 | + |
| 429 | + reply.setStatus(ReplyStatus.SELECTED); |
| 430 | + reply.getPost().setStatus(PostStatus.SELECTED); |
| 431 | + |
| 432 | + replyRepository.save(reply); |
| 433 | + userRepository.save(user); |
| 434 | + userRepository.save(reply.getUser()); |
| 435 | + postRepository.save(reply.getPost()); |
| 436 | + |
| 437 | + ReplyDto replyDto = new ReplyDto(reply); |
| 438 | + |
| 439 | + return new DefaultResponse<>(StatusCode.SUCCESS, ResponseMessage.REPLY_LIKE_CHANGE_SUCCESS, replyDto); |
| 440 | + } |
396 | 441 | }
|
0 commit comments