diff --git a/src/main/java/com/seoultech/synergybe/domain/apply/controller/ApplyController.java b/src/main/java/com/seoultech/synergybe/domain/apply/controller/ApplyController.java index 52eb2526..3ba0c869 100644 --- a/src/main/java/com/seoultech/synergybe/domain/apply/controller/ApplyController.java +++ b/src/main/java/com/seoultech/synergybe/domain/apply/controller/ApplyController.java @@ -21,10 +21,10 @@ public class ApplyController { private final ApplyService applyService; @Operation(summary = "프로젝트 지원 생성", description = "프로젝트와 user가 매핑되어 지원됩니다.") - @PostMapping(value = "/{projectId}") - public ResponseEntity createApply(@PathVariable("projectId") String projectId, @LoginUser String userId) { + @PostMapping(value = "/{projectToken}") + public ResponseEntity createApply(@PathVariable("projectToken") String projectToken, @LoginUser String userToken) { - return ResponseEntity.status(HttpStatus.CREATED).body(applyService.createApply(userId, projectId)); + return ResponseEntity.status(HttpStatus.CREATED).body(applyService.createApply(userToken, projectToken)); } @Operation(summary = "프로젝트 지원 삭제", description = "지원이 삭제됩니다.") diff --git a/src/main/java/com/seoultech/synergybe/domain/apply/dto/response/GetApplyResponse.java b/src/main/java/com/seoultech/synergybe/domain/apply/dto/response/GetApplyResponse.java index 6c101e76..442f8920 100644 --- a/src/main/java/com/seoultech/synergybe/domain/apply/dto/response/GetApplyResponse.java +++ b/src/main/java/com/seoultech/synergybe/domain/apply/dto/response/GetApplyResponse.java @@ -6,7 +6,7 @@ @Builder public record GetApplyResponse( - String applyId, + String applyToken, String status ) { @QueryProjection diff --git a/src/main/java/com/seoultech/synergybe/domain/apply/service/ApplyService.java b/src/main/java/com/seoultech/synergybe/domain/apply/service/ApplyService.java index d0638f3e..59a1c667 100644 --- a/src/main/java/com/seoultech/synergybe/domain/apply/service/ApplyService.java +++ b/src/main/java/com/seoultech/synergybe/domain/apply/service/ApplyService.java @@ -36,14 +36,17 @@ public class ApplyService { private final TokenGenerator tokenGenerator; @Transactional - public GetApplyResponse createApply(String userId, String projectId) { - Project project = projectService.findProjectById(projectId); - User user = userService.getUser(userId); + public GetApplyResponse createApply(String userToken, String projectToken) { + Project project = projectService.findProjectById(projectToken); + User user = userService.getUser(userToken); Long applyId = idGenerator.generateId(); String applyToken = tokenGenerator.generateToken(IdPrefix.APPLY); Apply apply = Apply.builder() - .id(applyId).user(user).project(project) + .id(applyId) + .applyToken(applyToken) + .user(user) + .project(project) .build(); Apply savedApply = applyRepository.save(apply); @@ -52,7 +55,7 @@ public GetApplyResponse createApply(String userId, String projectId) { // notificationService.send(leader, NotificationType.PROJECT_APPLY, "프로젝트 신청이 완료되었습니다.", projectId); return GetApplyResponse.builder() - .applyId(savedApply.getId()) + .applyToken(savedApply.getApplyToken()) .build(); } @@ -85,8 +88,9 @@ public void updateApplyStatusToAccept(String leaderId, String applyUserId, Strin // projectUser 추가 - String projectUserId = idGenerator.generateId(IdPrefix.PROJECT_USER); - ProjectUser projectUser = new ProjectUser(projectUserId, project, user); + Long projectUserId = idGenerator.generateId(); + String projectUserToken = tokenGenerator.generateToken(IdPrefix.PROJECT_USER); + ProjectUser projectUser = new ProjectUser(projectUserId, projectUserToken, project, user); project.getProjectUsers().add(projectUser); projectUserRepository.save(projectUser); // User applyUser = userService.getUser(userId); @@ -122,7 +126,7 @@ public void updateApplyStatusToReject(String leaderId, String applyUserId, Strin public GetListApplyResponse getMyApplyList(String userId) { User user = userService.getUser(userId); - List applies = applyRepository.findAllProcessByUserId(user.getId()); + List applies = applyRepository.findAllProcessByUserId(user.getUserToken()); return ApplyMapperEntityToDto.applyListToResponse(applies); } diff --git a/src/main/java/com/seoultech/synergybe/domain/comment/Comment.java b/src/main/java/com/seoultech/synergybe/domain/comment/Comment.java index 64d5d947..2d0f0a29 100644 --- a/src/main/java/com/seoultech/synergybe/domain/comment/Comment.java +++ b/src/main/java/com/seoultech/synergybe/domain/comment/Comment.java @@ -55,9 +55,10 @@ public class Comment extends BaseTime { private IsDeleted isDeleted = new IsDeleted(IS_DELETED_DEFAULT); @Builder - public Comment(String id, String comment, User user, Post post, Comment parentComment, int depth, int orderNumber, + public Comment(Long id, String commentToken, String comment, User user, Post post, Comment parentComment, int depth, int orderNumber, boolean isChildComment) { this.id = id; + this.commentToken = commentToken; this.comment = new CommentContent(comment); this.user = user; this.post = post; diff --git a/src/main/java/com/seoultech/synergybe/domain/comment/controller/CommentController.java b/src/main/java/com/seoultech/synergybe/domain/comment/controller/CommentController.java index 532a1e0c..4def686d 100644 --- a/src/main/java/com/seoultech/synergybe/domain/comment/controller/CommentController.java +++ b/src/main/java/com/seoultech/synergybe/domain/comment/controller/CommentController.java @@ -27,9 +27,9 @@ public class CommentController { @Operation(summary = "Comment 생성", description = "게시글에 댓글이 생성되며, 사용자와 시간이 포함됩니다.") @PostMapping - public ResponseEntity createComment(@Valid @RequestBody CreateCommentRequest request, @LoginUser String userId) { + public ResponseEntity createComment(@Valid @RequestBody CreateCommentRequest request, @LoginUser String userToken) { - return ResponseEntity.status(HttpStatus.CREATED).body(commentService.createComment(userId, request)); + return ResponseEntity.status(HttpStatus.CREATED).body(commentService.createComment(userToken, request)); } @Operation(summary = "Comment 수정", description = "댓글이 요청에 대해 수정됩니다.") diff --git a/src/main/java/com/seoultech/synergybe/domain/comment/service/CommentService.java b/src/main/java/com/seoultech/synergybe/domain/comment/service/CommentService.java index 9c2fbbca..113f01fe 100644 --- a/src/main/java/com/seoultech/synergybe/domain/comment/service/CommentService.java +++ b/src/main/java/com/seoultech/synergybe/domain/comment/service/CommentService.java @@ -8,6 +8,7 @@ import com.seoultech.synergybe.domain.comment.repository.CommentRepository; import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.common.paging.ListResponse; import com.seoultech.synergybe.domain.notification.service.NotificationService; import com.seoultech.synergybe.domain.post.Post; @@ -25,31 +26,31 @@ @RequiredArgsConstructor public class CommentService { private final CommentRepository commentRepository; - private final PostReader postReader; private final UserService userService; - private final NotificationService notificationService; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; public GetCommentResponse createComment(String userId, CreateCommentRequest request) { Post post = postReader.read(request.postId()); User user = userService.getUser(userId); - String commentId = idGenerator.generateId(IdPrefix.COMMENT); + Long commentId = idGenerator.generateId(); + String commentToken = tokenGenerator.generateToken(IdPrefix.COMMENT); Comment comment = Comment.builder() .id(commentId) + .commentToken(commentToken) .comment(request.comment()) .post(post).user(user) .build(); - Comment savedComment = commentRepository.save(comment); savedComment.addPost(post); // User postUser = post.getUser(); // notificationService.send(postUser, NotificationType.COMMENT, "댓글이 생성되었습니다", post.getId()); return GetCommentResponse.builder() - .commentId(savedComment.getId()) + .commentId(savedComment.getCommentToken()) .build(); } diff --git a/src/main/java/com/seoultech/synergybe/domain/follow/Follow.java b/src/main/java/com/seoultech/synergybe/domain/follow/Follow.java index d2200f36..e0eee060 100644 --- a/src/main/java/com/seoultech/synergybe/domain/follow/Follow.java +++ b/src/main/java/com/seoultech/synergybe/domain/follow/Follow.java @@ -32,8 +32,9 @@ public class Follow extends BaseTime { private FollowStatus status; @Builder - public Follow(Long id, User follower, User following) { + public Follow(Long id, String followToken, User follower, User following) { this.id = id; + this.followToken = followToken; this.follower = follower; this.following = following; this.status = FollowStatus.FOLLOW; diff --git a/src/main/java/com/seoultech/synergybe/domain/follow/controller/FollowController.java b/src/main/java/com/seoultech/synergybe/domain/follow/controller/FollowController.java index 9e3ae616..8468439c 100644 --- a/src/main/java/com/seoultech/synergybe/domain/follow/controller/FollowController.java +++ b/src/main/java/com/seoultech/synergybe/domain/follow/controller/FollowController.java @@ -24,11 +24,11 @@ public class FollowController { private final UserService userService; @Operation(summary = "follow 신청, 취소", description = "팔로우를 신청 및 취소하며 팔로우 타입에 따라 팔로우 상태가 변화하므로 PUT 메서드 하나로 관리됩니다.") - @PutMapping(value = "/{followingId}") - public ResponseEntity updateFollow(@PathVariable("followingId") String followingId, @RequestBody CreateFollowRequest type, @LoginUser String userId) { + @PutMapping(value = "/{followingToken}") + public ResponseEntity updateFollow(@PathVariable("followingToken") String followingToken, @RequestBody CreateFollowRequest type, @LoginUser String userId) { User user = userService.getUser(userId); - return ResponseEntity.status(HttpStatus.OK).body(followService.updateFollow(user, followingId, type)); + return ResponseEntity.status(HttpStatus.OK).body(followService.updateFollow(user, followingToken, type)); } diff --git a/src/main/java/com/seoultech/synergybe/domain/follow/service/FollowService.java b/src/main/java/com/seoultech/synergybe/domain/follow/service/FollowService.java index eb85fbcc..61287b94 100644 --- a/src/main/java/com/seoultech/synergybe/domain/follow/service/FollowService.java +++ b/src/main/java/com/seoultech/synergybe/domain/follow/service/FollowService.java @@ -2,6 +2,7 @@ import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.common.paging.ListResponse; import com.seoultech.synergybe.domain.follow.Follow; import com.seoultech.synergybe.domain.follow.FollowStatus; @@ -27,6 +28,7 @@ public class FollowService { private final UserService userService; private final NotificationService notificationService; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; public List findFollowingIdsByUserId(String userId) { return followRepository.findFollowingIdsByFollowerId(userId); @@ -35,12 +37,12 @@ public List findFollowingIdsByUserId(String userId) { /** * * @param user 신청한 유저 - * @param followingId 신청 받은 유저 + * @param followingToken 신청 받은 유저 * @param type * @return */ @Transactional - public GetFollowResponse updateFollow(User user, String followingId, CreateFollowRequest type) { + public GetFollowResponse updateFollow(User user, String followingToken, CreateFollowRequest type) { FollowStatus status; if (type.followType().equals("follow")) { status = FollowStatus.FOLLOW; @@ -49,7 +51,7 @@ public GetFollowResponse updateFollow(User user, String followingId, CreateFollo } try { - Follow updatedFollow = update(user, followingId, status); + Follow updatedFollow = update(user, followingToken, status); GetFollowResponse getFollowResponse = GetFollowResponse.builder().build(); return getFollowResponse; @@ -62,7 +64,7 @@ public GetFollowResponse updateFollow(User user, String followingId, CreateFollo } public synchronized Follow update(User user, String followingId, FollowStatus status) { - Optional followOptional = followRepository.findByFollowerIdAndFollowingId(user.getId(), followingId); + Optional followOptional = followRepository.findByFollowerIdAndFollowingId(user.getUserToken(), followingId); if (followOptional.isPresent()) { followOptional.get().updateStatus(status); @@ -72,9 +74,11 @@ public synchronized Follow update(User user, String followingId, FollowStatus st return followOptional.get(); } else { User following = userService.getUser(followingId); - String followId = idGenerator.generateId(IdPrefix.FOLLOW); + Long followId = idGenerator.generateId(); + String followToken = tokenGenerator.generateToken(IdPrefix.FOLLOW); Follow follow = Follow.builder() .id(followId) + .followToken(followToken) .follower(user) .following(following) .build(); diff --git a/src/main/java/com/seoultech/synergybe/domain/library/scheduler/PublicLibraryScheduler.java b/src/main/java/com/seoultech/synergybe/domain/library/scheduler/PublicLibraryScheduler.java index ff370441..20e8b86c 100644 --- a/src/main/java/com/seoultech/synergybe/domain/library/scheduler/PublicLibraryScheduler.java +++ b/src/main/java/com/seoultech/synergybe/domain/library/scheduler/PublicLibraryScheduler.java @@ -2,6 +2,7 @@ import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.library.domain.PublicLibrary; import com.seoultech.synergybe.domain.library.domain.RawPublicLibrary; import com.seoultech.synergybe.domain.library.repository.PublicLibraryRepository; @@ -21,6 +22,7 @@ public class PublicLibraryScheduler { private final PublicLibraryRepository publicLibraryRepository; private final RawPublicLibraryRepository rawPublicLibraryRepository; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; @Scheduled(cron = "0 0 4 * * 6", zone = "Asia/Seoul") public void updatePublicLibrary() { @@ -30,7 +32,8 @@ public void updatePublicLibrary() { List publicLibraries = rawPublicLibraryList.stream().map( rawPublicLibrary -> PublicLibrary.builder() - .id(idGenerator.generateId(IdPrefix.PUBLIC_LIBRARY)) + .id(idGenerator.generateId()) + .publicLibraryToken(tokenGenerator.generateToken(IdPrefix.PUBLIC_LIBRARY)) .name(rawPublicLibrary.getName()) .address(rawPublicLibrary.getAddress()) .telNumber(rawPublicLibrary.getTelNumber()) diff --git a/src/main/java/com/seoultech/synergybe/domain/library/scheduler/SmallLibraryScheduler.java b/src/main/java/com/seoultech/synergybe/domain/library/scheduler/SmallLibraryScheduler.java index 0a9ac4fb..ae8ec712 100644 --- a/src/main/java/com/seoultech/synergybe/domain/library/scheduler/SmallLibraryScheduler.java +++ b/src/main/java/com/seoultech/synergybe/domain/library/scheduler/SmallLibraryScheduler.java @@ -2,6 +2,7 @@ import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.library.domain.RawSmallLibrary; import com.seoultech.synergybe.domain.library.domain.SmallLibrary; import com.seoultech.synergybe.domain.library.repository.RawSmallLibraryRepository; @@ -21,6 +22,7 @@ public class SmallLibraryScheduler { private final SmallLibraryRepository smallLibraryRepository; private final RawSmallLibraryRepository rawSmallLibraryRepository; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; @Scheduled(cron = "0 0 4 * * 6", zone = "Asia/Seoul") public void updateSmallLibrary() { @@ -30,7 +32,8 @@ public void updateSmallLibrary() { List smallLibraries = rawSmallLibraryList.stream().map( rawSmallLibrary -> SmallLibrary.builder() - .id(idGenerator.generateId(IdPrefix.SMALL_LIBRARY)) + .id(idGenerator.generateId()) + .smallLibraryToken(tokenGenerator.generateToken(IdPrefix.SMALL_LIBRARY)) .name(rawSmallLibrary.getName()) .address(rawSmallLibrary.getAddress()) .telNumber(rawSmallLibrary.getTelNumber()) diff --git a/src/main/java/com/seoultech/synergybe/domain/notice/controller/NoticeController.java b/src/main/java/com/seoultech/synergybe/domain/notice/controller/NoticeController.java index f16f549c..72966f4d 100644 --- a/src/main/java/com/seoultech/synergybe/domain/notice/controller/NoticeController.java +++ b/src/main/java/com/seoultech/synergybe/domain/notice/controller/NoticeController.java @@ -30,16 +30,16 @@ public ResponseEntity createNotice(@RequestBody CreateNoticeR } @Operation(summary = "공지 조회", description = "프로젝트 공지를 단건 조회합니다.") - @GetMapping(value = "/{projectId}") - public ResponseEntity> getNotice(@PathVariable("projectId") String projectId) { + @GetMapping(value = "/{projectToken}") + public ResponseEntity> getNotice(@PathVariable("projectToken") String projectToken) { - return ResponseEntity.status(HttpStatus.OK).body(noticeService.getNoticeList(projectId)); + return ResponseEntity.status(HttpStatus.OK).body(noticeService.getNoticeList(projectToken)); } @Operation(summary = "공지 삭제", description = "프로젝트 공지를 삭제합니다.") - @DeleteMapping("/{noticeId}") - public ResponseEntity deleteNotice(@PathVariable("noticeId") String noticeId, @LoginUser String userId) { - noticeService.deleteNotice(noticeId); + @DeleteMapping("/{noticeToken}") + public ResponseEntity deleteNotice(@PathVariable("noticeToken") String noticeToken, @LoginUser String userId) { + noticeService.deleteNotice(noticeToken); return ResponseEntity.noContent().build(); } diff --git a/src/main/java/com/seoultech/synergybe/domain/notice/service/NoticeService.java b/src/main/java/com/seoultech/synergybe/domain/notice/service/NoticeService.java index 8caf8d1f..1105d7c8 100644 --- a/src/main/java/com/seoultech/synergybe/domain/notice/service/NoticeService.java +++ b/src/main/java/com/seoultech/synergybe/domain/notice/service/NoticeService.java @@ -2,6 +2,7 @@ import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.common.paging.ListResponse; import com.seoultech.synergybe.domain.notice.Notice; import com.seoultech.synergybe.domain.notice.dto.request.CreateNoticeRequest; @@ -28,18 +29,24 @@ public class NoticeService { private final ProjectService projectService; private final NotificationService notificationService; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; public GetNoticeResponse createNotice(CreateNoticeRequest request) { Project project = projectService.findProjectById(request.projectId()); - String noticeId = idGenerator.generateId(IdPrefix.NOTICE); + Long noticeId = idGenerator.generateId(); + String noticeToken = tokenGenerator.generateToken(IdPrefix.NOTICE); Notice notice = Notice.builder() - .id(noticeId).content(request.content()).project(project) + .id(noticeId) + .noticeToken(noticeToken) + .content(request.content()) + .project(project) .build(); + Notice savedNotice = this.noticeRepository.save(notice); List projectUsers = project.getProjectUsers().stream().map(projectUser -> projectUser.getUser()).collect(Collectors.toList()); for (User user : projectUsers) { - notificationService.send(user, NotificationType.PROJECT_NOTICE, "공지사항이 생성되었습니다.", project.getId()); + notificationService.send(user, NotificationType.PROJECT_NOTICE, "공지사항이 생성되었습니다.", project.getProjectToken()); } GetNoticeResponse getNoticeResponse = GetNoticeResponse.builder().build(); diff --git a/src/main/java/com/seoultech/synergybe/domain/post/business/PostService.java b/src/main/java/com/seoultech/synergybe/domain/post/business/PostService.java index c373000d..9c2a8bdf 100644 --- a/src/main/java/com/seoultech/synergybe/domain/post/business/PostService.java +++ b/src/main/java/com/seoultech/synergybe/domain/post/business/PostService.java @@ -30,7 +30,7 @@ public GetPostResponse createPost(String userId, CreatePostDto postData) { postManager.save(post); return GetPostResponse.builder() - .postId(post.getId()) + .postToken(post.getPostToken()) .build(); } @@ -42,7 +42,7 @@ public GetPostResponse updatePost(String userId, UpdatePostDto updatePostDto) { postManager.update(post, updatePostDto); return GetPostResponse.builder() - .postId(post.getId()) + .postToken(post.getPostToken()) .build(); } diff --git a/src/main/java/com/seoultech/synergybe/domain/post/infrastructure/PostJpaRepository.java b/src/main/java/com/seoultech/synergybe/domain/post/infrastructure/PostJpaRepository.java index cdbbac9a..a4446ebf 100644 --- a/src/main/java/com/seoultech/synergybe/domain/post/infrastructure/PostJpaRepository.java +++ b/src/main/java/com/seoultech/synergybe/domain/post/infrastructure/PostJpaRepository.java @@ -24,6 +24,10 @@ public void delete(Post post) { postRepository.delete(post); } + public Post findByToken(String token) { + return postRepository.findByPostToken(token); + } + public Post findById(Long postId) { return postRepository.findById(postId) .orElseThrow(() -> new PostNotFoundException("존재하지 않는 게시글입니다.")); diff --git a/src/main/java/com/seoultech/synergybe/domain/post/infrastructure/PostRepository.java b/src/main/java/com/seoultech/synergybe/domain/post/infrastructure/PostRepository.java index cd581666..a6dbdd6f 100644 --- a/src/main/java/com/seoultech/synergybe/domain/post/infrastructure/PostRepository.java +++ b/src/main/java/com/seoultech/synergybe/domain/post/infrastructure/PostRepository.java @@ -39,4 +39,6 @@ public interface PostRepository extends JpaRepository, PostRepositor @Query(value = "SELECT * FROM post WHERE post_id IN :ids ORDER BY FIELD(post_id, :ids)", nativeQuery = true) List findAllByIdInOrderByListOrder(@Param("ids") List ids); + + Post findByPostToken(String token); } diff --git a/src/main/java/com/seoultech/synergybe/domain/post/presentation/dto/response/GetPostResponse.java b/src/main/java/com/seoultech/synergybe/domain/post/presentation/dto/response/GetPostResponse.java index 958ee21c..52c5378e 100644 --- a/src/main/java/com/seoultech/synergybe/domain/post/presentation/dto/response/GetPostResponse.java +++ b/src/main/java/com/seoultech/synergybe/domain/post/presentation/dto/response/GetPostResponse.java @@ -12,7 +12,7 @@ @Builder public record GetPostResponse( - String postId, + String postToken, String title, String content, String userId, diff --git a/src/main/java/com/seoultech/synergybe/domain/postlike/controller/PostLikeController.java b/src/main/java/com/seoultech/synergybe/domain/postlike/controller/PostLikeController.java index 5f012274..d3410403 100644 --- a/src/main/java/com/seoultech/synergybe/domain/postlike/controller/PostLikeController.java +++ b/src/main/java/com/seoultech/synergybe/domain/postlike/controller/PostLikeController.java @@ -23,11 +23,11 @@ public class PostLikeController { private final UserService userService; @Operation(summary = "좋아요 신청, 취소", description = "좋아요를 신청 및 취소하며 좋아요 타입에 따라 좋아요 상태가 변화하므로 PUT 메서드 하나로 관리됩니다.") - @PutMapping(value = "/{postId}/like") - public ResponseEntity updatePostLike(@PathVariable("postId") String postId, @RequestBody PostLikeType type, @LoginUser String userId) { + @PutMapping(value = "/{postToken}/like") + public ResponseEntity updatePostLike(@PathVariable("postToken") String postToken, @RequestBody PostLikeType type, @LoginUser String userId) { User user = userService.getUser(userId); - return ResponseEntity.status(HttpStatus.OK).body(postLikeService.updatePostLike(user, postId, type)); + return ResponseEntity.status(HttpStatus.OK).body(postLikeService.updatePostLike(user, postToken, type)); } } diff --git a/src/main/java/com/seoultech/synergybe/domain/postlike/service/PostLikeService.java b/src/main/java/com/seoultech/synergybe/domain/postlike/service/PostLikeService.java index 933e27bd..92f74b6d 100644 --- a/src/main/java/com/seoultech/synergybe/domain/postlike/service/PostLikeService.java +++ b/src/main/java/com/seoultech/synergybe/domain/postlike/service/PostLikeService.java @@ -3,6 +3,7 @@ import com.seoultech.synergybe.domain.common.constants.LikeStatus; import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.post.Post; import com.seoultech.synergybe.domain.post.infrastructure.PostJpaRepository; import com.seoultech.synergybe.domain.postlike.PostLike; @@ -25,13 +26,14 @@ public class PostLikeService { private final PostLikeRepository postLikeRepository; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; private final PostJpaRepository postJpaRepository; @Transactional - public GetPostLikeResponse updatePostLike(User user, String postId, PostLikeType type) { + public GetPostLikeResponse updatePostLike(User user, String postToken, PostLikeType type) { LikeStatus status; log.info("before find"); - Post post = postJpaRepository.findById(postId); + Post post = postJpaRepository.findByToken(postToken); log.info("after find"); if (type.getLikeType().equals("like")) { @@ -41,7 +43,7 @@ public GetPostLikeResponse updatePostLike(User user, String postId, PostLikeType } try { log.info("updatePostLike update before"); - PostLike updatedPostLike = this.update(user, postId, status); + PostLike updatedPostLike = this.update(user, postToken, status); log.info("updatePostLike update after"); return GetPostLikeResponse.builder().build(); } catch (Exception e) { @@ -62,11 +64,11 @@ public GetPostLikeResponse updatePostLike(User user, String postId, PostLikeType * 3 - status가 like이면 like 로 변경 * post에서 해당 postlike 추가 */ - public synchronized PostLike update(User user, String postId, LikeStatus likeStatus) { - Optional postLikeOptional = postLikeRepository.findByUserIdAndPostId(user.getId(), postId); + public synchronized PostLike update(User user, String postToken, LikeStatus likeStatus) { + Optional postLikeOptional = postLikeRepository.findByUserIdAndPostId(user.getUserToken(), postToken); log.info("option"); - Post post = postJpaRepository.findById(postId); + Post post = postJpaRepository.findByToken(postToken); log.info("post"); if (postLikeOptional.isPresent()) { @@ -85,11 +87,13 @@ public synchronized PostLike update(User user, String postId, LikeStatus likeSta } else { // 없을 경우 생성 - String postLikeId = idGenerator.generateId(IdPrefix.POST_LIKE); + Long postLikeId = idGenerator.generateId(); + String postLikeToken = tokenGenerator.generateToken(IdPrefix.POST_LIKE); log.info("updatePostLike builder before"); PostLike postLike = PostLike.builder() .id(postLikeId) + .postLikeToken(postLikeToken) .user(user) .post(post) .build(); @@ -100,6 +104,6 @@ public synchronized PostLike update(User user, String postId, LikeStatus likeSta public List findLikedPostIds(User user) { - return postLikeRepository.findPostIdsByUserId(user.getId()); + return postLikeRepository.findPostIdsByUserId(user.getUserToken()); } } diff --git a/src/main/java/com/seoultech/synergybe/domain/projectlike/controller/ProjectLikeController.java b/src/main/java/com/seoultech/synergybe/domain/projectlike/controller/ProjectLikeController.java index 16170fec..fa8d2bb3 100644 --- a/src/main/java/com/seoultech/synergybe/domain/projectlike/controller/ProjectLikeController.java +++ b/src/main/java/com/seoultech/synergybe/domain/projectlike/controller/ProjectLikeController.java @@ -23,10 +23,10 @@ public class ProjectLikeController { private final UserService userService; @Operation(summary = "좋아요 신청, 취소", description = "좋아요를 신청 및 취소하며 좋아요 타입에 따라 좋아요 상태가 변화하므로 PUT 메서드 하나로 관리됩니다.") - @PutMapping(value = "/{projectId}/like") - public ResponseEntity updateProjectLike(@PathVariable("projectId") String projectId, @RequestBody ProjectLikeType type, @LoginUser String userId) { + @PutMapping(value = "/{projectToken}/like") + public ResponseEntity updateProjectLike(@PathVariable("projectToken") String projectToken, @RequestBody ProjectLikeType type, @LoginUser String userId) { User user = userService.getUser(userId); - return ResponseEntity.status(HttpStatus.OK).body(projectLikeService.updateProjectLike(user, projectId, type)); + return ResponseEntity.status(HttpStatus.OK).body(projectLikeService.updateProjectLike(user, projectToken, type)); } } diff --git a/src/main/java/com/seoultech/synergybe/domain/projectlike/service/ProjectLikeService.java b/src/main/java/com/seoultech/synergybe/domain/projectlike/service/ProjectLikeService.java index 4b229bab..43546019 100644 --- a/src/main/java/com/seoultech/synergybe/domain/projectlike/service/ProjectLikeService.java +++ b/src/main/java/com/seoultech/synergybe/domain/projectlike/service/ProjectLikeService.java @@ -3,6 +3,7 @@ import com.seoultech.synergybe.domain.common.constants.LikeStatus; import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.project.domain.Project; import com.seoultech.synergybe.domain.project.infrastructure.ProjectRepository; import com.seoultech.synergybe.domain.projectlike.ProjectLike; @@ -24,10 +25,11 @@ public class ProjectLikeService { private final ProjectLikeRepository projectLikeRepository; private final ProjectRepository projectRepository; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; @Transactional - public ProjectLikeResponse updateProjectLike(User user, String projectId, ProjectLikeType type) { + public ProjectLikeResponse updateProjectLike(User user, String projectToken, ProjectLikeType type) { LikeStatus status; if (type.getLikeType().equals("like")) { status = LikeStatus.LIKE; @@ -35,7 +37,7 @@ public ProjectLikeResponse updateProjectLike(User user, String projectId, Projec status = LikeStatus.UN_LIKE; } try { - ProjectLike updatedProjectLike = this.update(user, projectId, status); + ProjectLike updatedProjectLike = this.update(user, projectToken, status); // return ProjectLikeResponse.from(updatedProjectLike); return ProjectLikeResponse.builder().build(); @@ -45,19 +47,21 @@ public ProjectLikeResponse updateProjectLike(User user, String projectId, Projec } public synchronized ProjectLike update(User user, String projectId, LikeStatus status) { - Optional projectLikeOptional = projectLikeRepository.findByUserUserIdAndProjectId(user.getId(), projectId); + Optional projectLikeOptional = projectLikeRepository.findByUserUserIdAndProjectId(user.getUserToken(), projectId); if (projectLikeOptional.isPresent()) { projectLikeOptional.get().updateStatus(status); return projectLikeOptional.get(); } else { - String projectLikeId = idGenerator.generateId(IdPrefix.PROJECT_LIKE); + Long projectLikeId = idGenerator.generateId(); + String projectLikeToken = tokenGenerator.generateToken(IdPrefix.PROJECT_LIKE); // Project project = projectService.findProjectById(projectId); Project project = projectRepository.findById(projectId) .orElseThrow(); ProjectLike projectLike = ProjectLike.builder() .id(projectLikeId) + .projectLikeToken(projectLikeToken) .user(user) .project(project) .build(); @@ -67,6 +71,6 @@ public synchronized ProjectLike update(User user, String projectId, LikeStatus s } public List findLikedProjectIds(User user) { - return projectLikeRepository.findProjectIdsByUserId(user.getId()); + return projectLikeRepository.findProjectIdsByUserId(user.getUserToken()); } } diff --git a/src/main/java/com/seoultech/synergybe/domain/projectuser/service/ProjectUserService.java b/src/main/java/com/seoultech/synergybe/domain/projectuser/service/ProjectUserService.java index 31202977..549b66b9 100644 --- a/src/main/java/com/seoultech/synergybe/domain/projectuser/service/ProjectUserService.java +++ b/src/main/java/com/seoultech/synergybe/domain/projectuser/service/ProjectUserService.java @@ -2,8 +2,9 @@ import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.project.domain.Project; -import com.seoultech.synergybe.domain.project.infrastructure.repository.ProjectRepository; +import com.seoultech.synergybe.domain.project.infrastructure.ProjectRepository; import com.seoultech.synergybe.domain.projectuser.ProjectUser; import com.seoultech.synergybe.domain.projectuser.exception.ProjectUserNotFoundException; import com.seoultech.synergybe.domain.projectuser.repository.ProjectUserRepository; @@ -22,18 +23,24 @@ public class ProjectUserService { private final ProjectUserRepository projectUserRepository; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; private final ProjectRepository projectRepository; public void createProjectUser(Project project, User user) { - Optional projectUserOptional = projectUserRepository.findByProjectIdAndUserId(project.getId(), user.getId()); + Optional projectUserOptional = projectUserRepository.findByProjectIdAndUserId(project.getProjectToken(), user.getUserToken()); if (projectUserOptional.isPresent()) { // 이미 생성됨 } else { - String projectUserId = idGenerator.generateId(IdPrefix.PROJECT_USER); + Long projectUserId = idGenerator.generateId(); + String projectUserToken = tokenGenerator.generateToken(IdPrefix.PROJECT_USER); ProjectUser projectUser = ProjectUser.builder() - .id(projectUserId).project(project).user(user) + .id(projectUserId) + .projectUserToken(projectUserToken) + .project(project) + .user(user) .build(); + project.getProjectUsers().add(projectUser); projectUserRepository.save(projectUser); } @@ -44,7 +51,7 @@ public List getProjectUserIds(String projectId) { } public void deleteProjectUser(Project project, User user) { - Optional projectUserOptional = projectUserRepository.findByProjectIdAndUserId(project.getId(), user.getId()); + Optional projectUserOptional = projectUserRepository.findByProjectIdAndUserId(project.getProjectToken(), user.getUserToken()); if (projectUserOptional.isPresent()) { projectUserRepository.delete(projectUserOptional.get()); diff --git a/src/main/java/com/seoultech/synergybe/domain/rate/service/RateService.java b/src/main/java/com/seoultech/synergybe/domain/rate/service/RateService.java index 41b7ad34..736b8bb4 100644 --- a/src/main/java/com/seoultech/synergybe/domain/rate/service/RateService.java +++ b/src/main/java/com/seoultech/synergybe/domain/rate/service/RateService.java @@ -2,6 +2,7 @@ import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.common.paging.ListResponse; import com.seoultech.synergybe.domain.project.domain.Project; import com.seoultech.synergybe.domain.project.exception.ProjectLeaderBadRequestException; @@ -30,14 +31,17 @@ public class RateService { private final ProjectService projectService; private final UserService userService; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; public GetRateResponse createRate(CreateRateRequest request, User giveUser) { Project project = projectService.findProjectById(request.projectId()); User receiveUser = userService.getUser(request.receiveUserId()); - String rateId = idGenerator.generateId(IdPrefix.RATE); + Long rateId = idGenerator.generateId(); + String rateToken = tokenGenerator.generateToken(IdPrefix.RATE); + Rate rate = Rate.builder() - .id(rateId).project(project).giveUser(giveUser).receiveUser(receiveUser).content(request.content()).score(request.score()) + .id(rateId).project(project).rateToken(rateToken).giveUser(giveUser).receiveUser(receiveUser).content(request.content()).score(request.score()) .build(); rateRepository.save(rate); @@ -71,7 +75,7 @@ public List updateTemperature(String projectId, User leader) { } private UserRateResponse CalculateUserRate(String projectId, User user) { - List rates = rateRepository.findAllByProjectIdAndReceiverId(projectId, user.getId()); + List rates = rateRepository.findAllByProjectIdAndReceiverId(projectId, user.getUserToken()); int total = 0; for (Rate rate : rates) { diff --git a/src/main/java/com/seoultech/synergybe/domain/ticket/controller/TicketController.java b/src/main/java/com/seoultech/synergybe/domain/ticket/controller/TicketController.java index e8782d83..6422d1a3 100644 --- a/src/main/java/com/seoultech/synergybe/domain/ticket/controller/TicketController.java +++ b/src/main/java/com/seoultech/synergybe/domain/ticket/controller/TicketController.java @@ -33,36 +33,36 @@ public ResponseEntity createTicket(@RequestBody CreateTicketR } @Operation(summary = "작업 조회", description = "프로젝트의 모든 작업 목록을 반환합니다.") - @GetMapping(value = "/{projectId}") - public ResponseEntity> getTicketList(@PathVariable("projectId") String projectId) { + @GetMapping(value = "/{projectToken}") + public ResponseEntity> getTicketList(@PathVariable("projectToken") String projectToken) { - return ResponseEntity.ok().body(ticketService.getTicketList(projectId)); + return ResponseEntity.ok().body(ticketService.getTicketList(projectToken)); } @Operation(summary = "작업 수정", description = "요청된 내용에 따라 작업이 수정됩니다.") - @PutMapping(value = "/{ticketId}") - public ResponseEntity updateTicket(@PathVariable("ticketId") String ticketId, @LoginUser String userId, + @PutMapping(value = "/{ticketToken}") + public ResponseEntity updateTicket(@PathVariable("ticketToken") String ticketToken, @LoginUser String userId, @RequestBody CreateTicketRequest request) { User user = userService.getUser(userId); - ticketService.updateTicket(request, user, ticketId); + ticketService.updateTicket(request, user, ticketToken); return ResponseEntity.noContent().build(); } @Operation(summary = "작업 상태변경", description = "작업이 진행됨에 따라 작업의 상태를 칸반보드 형식으로 변경이 가능합니다.") - @PutMapping(value = "/change/{ticketId}") - public ResponseEntity> changeTicket(@PathVariable("ticketId") String ticketId, @LoginUser String userId, + @PutMapping(value = "/change/{ticketToken}") + public ResponseEntity> changeTicket(@PathVariable("ticketToken") String ticketToken, @LoginUser String userId, @RequestBody CreateTicketRequest request) { User allocatedUser = userService.getUser(userId); - return ResponseEntity.ok().body(ticketService.changeTickets(request, allocatedUser, ticketId)); + return ResponseEntity.ok().body(ticketService.changeTickets(request, allocatedUser, ticketToken)); } @Operation(summary = "작업 삭제", description = "작업을 삭제합니다.") - @DeleteMapping(value = "/{ticketId}") - public ResponseEntity deleteTicket(@PathVariable("ticketId") String ticketId, @LoginUser String userId) { + @DeleteMapping(value = "/{ticketToken}") + public ResponseEntity deleteTicket(@PathVariable("ticketToken") String ticketToken, @LoginUser String userId) { User allocatedUser = userService.getUser(userId); - ticketService.deleteTicket(ticketId, allocatedUser); + ticketService.deleteTicket(ticketToken, allocatedUser); return ResponseEntity.noContent().build(); } diff --git a/src/main/java/com/seoultech/synergybe/domain/ticket/service/TicketService.java b/src/main/java/com/seoultech/synergybe/domain/ticket/service/TicketService.java index 409fcd8a..abe4efe3 100644 --- a/src/main/java/com/seoultech/synergybe/domain/ticket/service/TicketService.java +++ b/src/main/java/com/seoultech/synergybe/domain/ticket/service/TicketService.java @@ -2,6 +2,7 @@ import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.common.paging.ListResponse; import com.seoultech.synergybe.domain.project.domain.Project; import com.seoultech.synergybe.domain.project.domain.service.ProjectService; @@ -34,6 +35,7 @@ public class TicketService { private final ProjectService projectService; private final UserService userService; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; /** * todo @@ -49,9 +51,11 @@ public GetTicketResponse createTicket(CreateTicketRequest request, User allocate Project project = projectService.findProjectById(request.projectId()); Integer lastOrderNum = ticketRepository.findLastOrderNumber(request.status(), request.projectId()); - String ticketId = idGenerator.generateId(IdPrefix.TICKET); + Long ticketId = idGenerator.generateId(); + String ticketToken = tokenGenerator.generateToken(IdPrefix.RATE); + Ticket ticket = Ticket.builder() - .id(ticketId).project(project) + .id(ticketId).ticketToken(ticketToken).project(project) .build(); ticketRepository.save(ticket); @@ -217,7 +221,7 @@ public GetTicketResponse deleteTicket(String ticketId, User user) { .orElseThrow(() -> new TicketNotFoundException("존재하지 않는 티켓입니다.")); // check User - List authUsers = projectService.getUserListByProject(ticket.getProject().getId()); + List authUsers = projectService.getUserListByProject(ticket.getProject().getProjectToken()); checkUser(authUsers, user); ticketRepository.delete(ticket); @@ -230,7 +234,7 @@ public void updateTicket(CreateTicketRequest request, User user, String ticketId Ticket ticket = ticketRepository.findById(ticketId) .orElseThrow(() -> new TicketNotFoundException("존재하지 않는 티켓입니다.")); // check User - List authUsers = projectService.getUserListByProject(ticket.getProject().getId()); + List authUsers = projectService.getUserListByProject(ticket.getProject().getProjectToken()); checkUser(authUsers, user); // assignedUser 수정 diff --git a/src/main/java/com/seoultech/synergybe/domain/ticketUser/service/TicketUserService.java b/src/main/java/com/seoultech/synergybe/domain/ticketUser/service/TicketUserService.java index 41e8004e..73494a6a 100644 --- a/src/main/java/com/seoultech/synergybe/domain/ticketUser/service/TicketUserService.java +++ b/src/main/java/com/seoultech/synergybe/domain/ticketUser/service/TicketUserService.java @@ -2,6 +2,7 @@ import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.ticket.Ticket; import com.seoultech.synergybe.domain.ticketUser.TicketUser; import com.seoultech.synergybe.domain.ticketUser.repository.TicketUserRepository; @@ -17,17 +18,21 @@ public class TicketUserService { private final TicketUserRepository ticketUserRepository; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; public void createTicketUser(Ticket ticket, User user) { - Optional ticketUserOptional = ticketUserRepository.findByTicketIdAndUserId(ticket.getId(), user.getId()); + Optional ticketUserOptional = ticketUserRepository.findByTicketIdAndUserId(ticket.getTicketToken(), user.getUserToken()); if (ticketUserOptional.isPresent()) { // 이미 생성됨 } else { - String ticketUserId = idGenerator.generateId(IdPrefix.TICKET_USER); + Long ticketUserId = idGenerator.generateId(); + String ticketUserToken = tokenGenerator.generateToken(IdPrefix.TICKET_USER); + TicketUser ticketUser = TicketUser.builder() - .id(ticketUserId).ticket(ticket).user(user) + .id(ticketUserId).ticketUserToken(ticketUserToken).ticket(ticket).user(user) .build(); + ticket.getTicketUsers().add(ticketUser); ticketUserRepository.save(ticketUser); } diff --git a/src/main/java/com/seoultech/synergybe/domain/user/dto/response/GetUserAccountResponse.java b/src/main/java/com/seoultech/synergybe/domain/user/dto/response/GetUserAccountResponse.java index 251cd1eb..7e8e11b5 100644 --- a/src/main/java/com/seoultech/synergybe/domain/user/dto/response/GetUserAccountResponse.java +++ b/src/main/java/com/seoultech/synergybe/domain/user/dto/response/GetUserAccountResponse.java @@ -5,15 +5,15 @@ @Builder public record GetUserAccountResponse( - String userId, + String userToken, String email, String name, String major, Double temperature ) { @QueryProjection - public GetUserAccountResponse(String userId, String email, String name, String major, Double temperature) { - this.userId = userId; + public GetUserAccountResponse(String userToken, String email, String name, String major, Double temperature) { + this.userToken = userToken; this.email = email; this.name = name; this.major = major; diff --git a/src/main/java/com/seoultech/synergybe/domain/user/repository/UserReader.java b/src/main/java/com/seoultech/synergybe/domain/user/repository/UserReader.java index 90726a76..e4949c72 100644 --- a/src/main/java/com/seoultech/synergybe/domain/user/repository/UserReader.java +++ b/src/main/java/com/seoultech/synergybe/domain/user/repository/UserReader.java @@ -12,7 +12,7 @@ public class UserReader { private final UserRepository userRepository; public User read(String userId) { - return userRepository.findById(userId) + return userRepository.findByUserToken(userId) .orElseThrow(() -> new UserNotFoundException("존재하지 않은 유저입니다.")); } } diff --git a/src/main/java/com/seoultech/synergybe/domain/user/repository/UserRepository.java b/src/main/java/com/seoultech/synergybe/domain/user/repository/UserRepository.java index 6252d7e3..50755791 100644 --- a/src/main/java/com/seoultech/synergybe/domain/user/repository/UserRepository.java +++ b/src/main/java/com/seoultech/synergybe/domain/user/repository/UserRepository.java @@ -14,7 +14,7 @@ import java.util.Optional; @Repository -public interface UserRepository extends JpaRepository, UserRepositoryCustom { +public interface UserRepository extends JpaRepository, UserRepositoryCustom { @Query(value = "SELECT * FROM user WHERE user_id IN :userIds", nativeQuery = true) List findAllByUserId(@Param("userIds") List userIds); @@ -22,4 +22,6 @@ public interface UserRepository extends JpaRepository, UserReposit Page findAll(Specification spec, Pageable pageable); boolean existsByEmail(UserEmail email); + + Optional findByUserToken(String userToken); } diff --git a/src/main/java/com/seoultech/synergybe/domain/user/service/UserService.java b/src/main/java/com/seoultech/synergybe/domain/user/service/UserService.java index 1063c9ac..d82a20d4 100644 --- a/src/main/java/com/seoultech/synergybe/domain/user/service/UserService.java +++ b/src/main/java/com/seoultech/synergybe/domain/user/service/UserService.java @@ -6,6 +6,7 @@ import com.seoultech.synergybe.domain.common.CustomPasswordEncoder; import com.seoultech.synergybe.domain.common.generator.IdGenerator; import com.seoultech.synergybe.domain.common.generator.IdPrefix; +import com.seoultech.synergybe.domain.common.generator.TokenGenerator; import com.seoultech.synergybe.domain.common.paging.ListResponse; import com.seoultech.synergybe.domain.email.MailService; import com.seoultech.synergybe.domain.user.UserRefreshToken; @@ -50,6 +51,7 @@ public class UserService { private final UserRefreshTokenRepository userRefreshTokenRepository; private final CustomPasswordEncoder passwordEncoder; private final IdGenerator idGenerator; + private final TokenGenerator tokenGenerator; private final MailService mailService; private final CookieUtil cookieUtil; private final JwtUtil jwtUtil; @@ -63,9 +65,12 @@ public String createUser( ) { checkEmailDuplicate(email); - String userId = idGenerator.generateId(IdPrefix.USER); + Long userId = idGenerator.generateId(); + String userToken = tokenGenerator.generateToken(IdPrefix.USER); + User user = User.builder() .id(userId) + .userToken(userToken) .email(email) .password(password) .name(name) @@ -76,7 +81,7 @@ public String createUser( mailService.validateEmail(email); - return user.getId(); + return user.getUserToken(); } private void checkEmailDuplicate(String email) { @@ -87,15 +92,20 @@ private void checkEmailDuplicate(String email) { } } - public User getUser(String userId) { - return userRepository.findById(userId).orElseThrow(() -> new UserNotFoundException("존재하지 않는 유저입니다.")); + public User getUserByToken(String userToken) { + return userRepository.findByUserToken(userToken).orElseThrow(() -> new UserNotFoundException("존재하지 않는 유저입니다.")); + } + + public User getUserById(Long userId) { + return userRepository.findById(userId) + .orElseThrow(() -> new UserNotFoundException("존재하지 않는 유저입니다.")); } public GetUserAccountResponse getUserInfo(String userId) { - User user = getUser(userId); + User user = getUserByToken(userId); return GetUserAccountResponse.builder() - .userId(user.getId()) + .userToken(user.getUserToken()) .email(user.getEmail().getEmail()) .major(user.getMajor().getMajor()) .name(user.getName().getName()) @@ -143,7 +153,7 @@ public void updateMyInfo( String name, String major ) { - User user = getUser(userId); + User user = getUserByToken(userId); user.updateUserInfo(email, name, major); } @@ -225,11 +235,11 @@ public void generateAccessTokenByRefreshToken(HttpServletRequest request, HttpSe getRefreshToken.updateRefreshToken(); log.info("new refreshToken value: " + getRefreshToken.getRefreshToken().getRefreshToken()); - String userId = getRefreshToken.getUserId(); + Long userId = getRefreshToken.getUserId(); - User user = getUser(userId); + User user = getUserById(userId); String email = user.getEmail().getEmail(); - String accessToken = jwtUtil.createToken(userId, email); + String accessToken = jwtUtil.createToken(user.getUserToken(), email); log.info("refreshToken save success"); cookieUtil.addRefreshTokenCookie(response, getRefreshToken, accessToken); log.info("add refreshToken cookie");