diff --git a/src/main/java/com/tiki/server/common/util/ContentDecoder.java b/src/main/java/com/tiki/server/common/util/ContentDecoder.java index ef8135f0..721a4962 100644 --- a/src/main/java/com/tiki/server/common/util/ContentDecoder.java +++ b/src/main/java/com/tiki/server/common/util/ContentDecoder.java @@ -7,10 +7,10 @@ public class ContentDecoder { public static List decodeNoteTemplate(final String encodedData) { String[] parts = encodedData.split("\\|"); - String decodedActivity = new String(Base64.getDecoder().decode(parts[0])); - String decodedPrepare = new String(Base64.getDecoder().decode(parts[1])); - String decodedDisappointing = new String(Base64.getDecoder().decode(parts[2])); - String decodedComplement = new String(Base64.getDecoder().decode(parts[3])); + String decodedActivity = parts[0].isBlank() ? "" : new String(Base64.getDecoder().decode(parts[0])); + String decodedPrepare = parts[1].isBlank() ? "" : new String(Base64.getDecoder().decode(parts[1])); + String decodedDisappointing = parts[2].isBlank() ? "" : new String(Base64.getDecoder().decode(parts[2])); + String decodedComplement = parts[3].isBlank() ? "" : new String(Base64.getDecoder().decode(parts[3])); return List.of(decodedActivity, decodedPrepare, decodedDisappointing, decodedComplement); } diff --git a/src/main/java/com/tiki/server/common/util/ContentEncoder.java b/src/main/java/com/tiki/server/common/util/ContentEncoder.java index 19e375e5..26aac4f5 100644 --- a/src/main/java/com/tiki/server/common/util/ContentEncoder.java +++ b/src/main/java/com/tiki/server/common/util/ContentEncoder.java @@ -5,10 +5,10 @@ public class ContentEncoder { public static String encodeNoteTemplate(final String activity, final String prepare, final String disappointing, final String complement) { - String encodedActivity = Base64.getEncoder().encodeToString(activity.getBytes()); - String encodedPrepare = Base64.getEncoder().encodeToString(prepare.getBytes()); - String encodedDisappointing = Base64.getEncoder().encodeToString(disappointing.getBytes()); - String encodedComplement = Base64.getEncoder().encodeToString(complement.getBytes()); + String encodedActivity = activity.isBlank() ? " " : Base64.getEncoder().encodeToString(activity.getBytes()); + String encodedPrepare = prepare.isBlank() ? " " : Base64.getEncoder().encodeToString(prepare.getBytes()); + String encodedDisappointing = disappointing.isBlank() ? " " : Base64.getEncoder().encodeToString(disappointing.getBytes()); + String encodedComplement = complement.isBlank() ? " " : Base64.getEncoder().encodeToString(complement.getBytes()); return String.join("|", encodedActivity, encodedPrepare, encodedDisappointing, encodedComplement); } diff --git a/src/main/java/com/tiki/server/document/service/DocumentService.java b/src/main/java/com/tiki/server/document/service/DocumentService.java index 18017734..c74a155a 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -32,7 +32,7 @@ public class DocumentService { private final MemberTeamManagerFinder memberTeamManagerFinder; public DocumentsGetResponse getAllDocuments(long memberId, long teamId, String type) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Position accessiblePosition = Position.getAccessiblePosition(type); memberTeamManager.checkMemberAccessible(accessiblePosition); return getAllDocumentsByType(teamId, accessiblePosition); @@ -40,7 +40,7 @@ public DocumentsGetResponse getAllDocuments(long memberId, long teamId, String t @Transactional public void deleteDocument(long memberId, long teamId, long documentId) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Document document = documentFinder.findByIdWithTimeBlock(documentId); memberTeamManager.checkMemberAccessible(document.getTimeBlock().getAccessiblePosition()); documentDeleter.delete(document); @@ -48,7 +48,7 @@ public void deleteDocument(long memberId, long teamId, long documentId) { @Transactional public DocumentsCreateResponse createDocuments(long memberId, long teamId, DocumentsCreateRequest request) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); checkFolderIsExist(request.folderId()); List documentIds = request.documents().stream() .map(document -> saveDocument(teamId, request.folderId(), document).getId()) diff --git a/src/main/java/com/tiki/server/folder/service/FolderService.java b/src/main/java/com/tiki/server/folder/service/FolderService.java index 3656e009..8358976c 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -33,7 +33,7 @@ public FoldersGetResponse get(final long memberId, final long teamId, final Stri @Transactional public FolderCreateResponse create(long memberId, long teamId, FolderCreateRequest request) { // 같은 레벨 파일명 중복 방지 로직 추가 필요 - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Folder parentFolder = getFolder(request.parentId()); Folder folder = folderSaver.save(new Folder(request.name(), parentFolder, teamId)); return FolderCreateResponse.from(folder.getId()); diff --git a/src/main/java/com/tiki/server/memberteammanager/adapter/MemberTeamManagerFinder.java b/src/main/java/com/tiki/server/memberteammanager/adapter/MemberTeamManagerFinder.java index 833457c1..84ff2bb4 100644 --- a/src/main/java/com/tiki/server/memberteammanager/adapter/MemberTeamManagerFinder.java +++ b/src/main/java/com/tiki/server/memberteammanager/adapter/MemberTeamManagerFinder.java @@ -10,23 +10,28 @@ import lombok.RequiredArgsConstructor; import java.util.List; +import java.util.Optional; @RepositoryAdapter @RequiredArgsConstructor public class MemberTeamManagerFinder { - private final MemberTeamManagerRepository teamManagerRepository; + private final MemberTeamManagerRepository memberTeamManagerRepository; - public MemberTeamManager findByMemberIdAndTeamId(long memberId, long teamId) { - return teamManagerRepository.findByMemberIdAndTeamId(memberId, teamId) + public MemberTeamManager findByMemberIdAndTeamIdOrElseThrow(long memberId, long teamId) { + return memberTeamManagerRepository.findByMemberIdAndTeamId(memberId, teamId) .orElseThrow(() -> new MemberTeamManagerException(INVALID_MEMBER_TEAM_MANAGER)); } + public Optional findByMemberIdAndTeamId(final long memberId, final long teamId) { + return memberTeamManagerRepository.findByMemberIdAndTeamId(memberId, teamId); + } + public List findBelongTeamByMemberId(long memberId) { - return teamManagerRepository.findAllBelongTeamByMemberId(memberId).stream().toList(); + return memberTeamManagerRepository.findAllBelongTeamByMemberId(memberId).stream().toList(); } public List findAllByTeamId(long teamId) { - return teamManagerRepository.findAllByTeamId(teamId); + return memberTeamManagerRepository.findAllByTeamId(teamId); } } diff --git a/src/main/java/com/tiki/server/note/adapter/NoteFinder.java b/src/main/java/com/tiki/server/note/adapter/NoteFinder.java index 26e10072..97e2b44a 100644 --- a/src/main/java/com/tiki/server/note/adapter/NoteFinder.java +++ b/src/main/java/com/tiki/server/note/adapter/NoteFinder.java @@ -18,12 +18,12 @@ public class NoteFinder { private final NoteRepository noteRepository; - public List findByModifiedAtBeforeOrderByModifiedAtDesc(final LocalDateTime lastUpdatedAt, final PageRequest pageRequest) { - return noteRepository.findByModifiedAtBeforeOrderByModifiedAtDesc(lastUpdatedAt, pageRequest); + public List findByCreatedAtBeforeOrderByModifiedAtDesc(final LocalDateTime createdAt, final PageRequest pageRequest) { + return noteRepository.findByCreatedAtBeforeOrderByModifiedAtDesc(createdAt, pageRequest); } - public List findByModifiedAtAfterOrderByModifiedAtAsc(final LocalDateTime lastUpdatedAt, final PageRequest pageRequest) { - return noteRepository.findByModifiedAtAfterOrderByModifiedAtAsc(lastUpdatedAt, pageRequest); + public List findByCreatedAtAfterOrderByModifiedAtAsc(final LocalDateTime createdAt, final PageRequest pageRequest) { + return noteRepository.findByCreatedAtAfterOrderByModifiedAtAsc(createdAt, pageRequest); } public Note findById(final long noteId) { diff --git a/src/main/java/com/tiki/server/note/controller/NoteController.java b/src/main/java/com/tiki/server/note/controller/NoteController.java index 93f30413..38d75a69 100644 --- a/src/main/java/com/tiki/server/note/controller/NoteController.java +++ b/src/main/java/com/tiki/server/note/controller/NoteController.java @@ -84,14 +84,14 @@ public ResponseEntity updateNoteTemplate( public ResponseEntity> getNote( final Principal principal, @PathVariable long teamId, - @RequestParam(required = false) LocalDateTime lastUpdatedAt, + @RequestParam(required = false) LocalDateTime createdAt, @RequestParam(defaultValue = "DESC") SortOrder sortOrder ) { long memberId = Long.parseLong(principal.getName()); - if (lastUpdatedAt == null) { - lastUpdatedAt = (sortOrder == SortOrder.DESC) ? LocalDateTime.now() : LocalDateTime.of(1970, 1, 1, 0, 0); + if (createdAt == null) { + createdAt = (sortOrder == SortOrder.DESC) ? LocalDateTime.now() : LocalDateTime.of(1970, 1, 1, 0, 0); } - NoteListGetServiceResponse response = noteService.getNote(teamId, memberId, lastUpdatedAt, sortOrder); + NoteListGetServiceResponse response = noteService.getNote(teamId, memberId, createdAt, sortOrder); return ResponseEntity.ok().body(success(GET_NOTE.getMessage(), response)); } diff --git a/src/main/java/com/tiki/server/note/entity/Note.java b/src/main/java/com/tiki/server/note/entity/Note.java index fdaea510..1ef479e9 100644 --- a/src/main/java/com/tiki/server/note/entity/Note.java +++ b/src/main/java/com/tiki/server/note/entity/Note.java @@ -30,15 +30,13 @@ public class Note extends BaseTime { private String title; - private String author; - private boolean complete; private LocalDate startDate; private LocalDate endDate; - private long memberId; + private Long memberId; private long teamId; @@ -49,7 +47,6 @@ public class Note extends BaseTime { public static Note of( final String title, - final String author, final boolean complete, final LocalDate startDate, final LocalDate endDate, @@ -60,7 +57,6 @@ public static Note of( ) { return Note.builder() .title(title) - .author(author) .complete(complete) .startDate(startDate) .endDate(endDate) diff --git a/src/main/java/com/tiki/server/note/repository/NoteRepository.java b/src/main/java/com/tiki/server/note/repository/NoteRepository.java index fa4bba4b..46a7804e 100644 --- a/src/main/java/com/tiki/server/note/repository/NoteRepository.java +++ b/src/main/java/com/tiki/server/note/repository/NoteRepository.java @@ -11,9 +11,9 @@ public interface NoteRepository extends JpaRepository { - @Query("SELECT n FROM Note n WHERE n.updatedAt < :lastModifiedAt ORDER BY n.updatedAt DESC") - List findByModifiedAtBeforeOrderByModifiedAtDesc(@Param("lastModifiedAt") LocalDateTime lastModifiedAt, Pageable pageable); + @Query("SELECT n FROM Note n WHERE n.createdAt < :createdAt ORDER BY n.createdAt DESC") + List findByCreatedAtBeforeOrderByModifiedAtDesc(@Param("createdAt") LocalDateTime createdAt, Pageable pageable); - @Query("SELECT n FROM Note n WHERE n.updatedAt > :lastModifiedAt ORDER BY n.updatedAt ASC") - List findByModifiedAtAfterOrderByModifiedAtAsc(@Param("lastModifiedAt") LocalDateTime lastModifiedAt, Pageable pageable); + @Query("SELECT n FROM Note n WHERE n.createdAt > :createdAt ORDER BY n.createdAt ASC") + List findByCreatedAtAfterOrderByModifiedAtAsc(@Param("createdAt") LocalDateTime createdAt, Pageable pageable); } diff --git a/src/main/java/com/tiki/server/note/service/NoteService.java b/src/main/java/com/tiki/server/note/service/NoteService.java index dff8b694..3f5e3e89 100644 --- a/src/main/java/com/tiki/server/note/service/NoteService.java +++ b/src/main/java/com/tiki/server/note/service/NoteService.java @@ -4,7 +4,9 @@ import com.tiki.server.common.util.ContentEncoder; import com.tiki.server.document.adapter.DocumentFinder; import com.tiki.server.document.entity.Document; +import com.tiki.server.member.adapter.MemberFinder; import com.tiki.server.memberteammanager.adapter.MemberTeamManagerFinder; +import com.tiki.server.memberteammanager.entity.MemberTeamManager; import com.tiki.server.note.adapter.NoteDeleter; import com.tiki.server.note.adapter.NoteFinder; import com.tiki.server.note.adapter.NoteSaver; @@ -29,6 +31,7 @@ import java.time.LocalDateTime; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import static com.tiki.server.common.Constants.INIT_NUM; @@ -50,12 +53,13 @@ public class NoteService { private final NoteDocumentManagerDeleter noteDocumentManagerDeleter; private final TimeBlockFinder timeBlockFinder; private final DocumentFinder documentFinder; + private final MemberFinder memberFinder; @Transactional public NoteCreateServiceResponse createNoteFree(final NoteFreeCreateServiceRequest request) { - String author = memberTeamManagerFinder.findByMemberIdAndTeamId(request.memberId(), request.teamId()).getName(); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(request.memberId(), request.teamId()); String encryptedContents = ContentEncoder.encodeNoteFree(request.contents()); - Note note = createNote(NoteBase.of(request), author, encryptedContents, NoteType.FREE); + Note note = createNote(NoteBase.of(request), encryptedContents, NoteType.FREE); createNoteTimeBlockManagers(request.timeBlockIds(), note.getId()); createNoteDocumentManagers(request.documentIds(), note.getId()); return NoteCreateServiceResponse.from(note.getId()); @@ -63,14 +67,14 @@ public NoteCreateServiceResponse createNoteFree(final NoteFreeCreateServiceReque @Transactional public NoteCreateServiceResponse createNoteTemplate(final NoteTemplateCreateServiceRequest request) { - String author = memberTeamManagerFinder.findByMemberIdAndTeamId(request.memberId(), request.teamId()).getName(); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(request.memberId(), request.teamId()); String encryptedContents = ContentEncoder.encodeNoteTemplate( request.answerWhatActivity(), request.answerHowToPrepare(), request.answerWhatIsDisappointedThing(), request.answerHowToFix() ); - Note note = createNote(NoteBase.of(request), author, encryptedContents, NoteType.TEMPLATE); + Note note = createNote(NoteBase.of(request), encryptedContents, NoteType.TEMPLATE); createNoteTimeBlockManagers(request.timeBlockIds(), note.getId()); createNoteDocumentManagers(request.documentIds(), note.getId()); return NoteCreateServiceResponse.from(note.getId()); @@ -79,7 +83,7 @@ public NoteCreateServiceResponse createNoteTemplate(final NoteTemplateCreateServ @Transactional public void updateNoteFree(final NoteFreeUpdateServiceRequest request) { Note note = noteFinder.findById(request.noteId()); - memberTeamManagerFinder.findByMemberIdAndTeamId(request.memberId(), request.teamId()); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(request.memberId(), request.teamId()); String encryptedContents = ContentEncoder.encodeNoteFree(request.contents()); note.updateValue( request.memberId(), @@ -98,7 +102,7 @@ public void updateNoteFree(final NoteFreeUpdateServiceRequest request) { @Transactional public void updateNoteTemplate(final NoteTemplateUpdateServiceRequest request) { Note note = noteFinder.findById(request.noteId()); - memberTeamManagerFinder.findByMemberIdAndTeamId(request.memberId(), request.teamId()); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(request.memberId(), request.teamId()); String encryptedContents = ContentEncoder.encodeNoteTemplate( request.answerWhatActivity(), request.answerHowToPrepare(), @@ -121,7 +125,7 @@ public void updateNoteTemplate(final NoteTemplateUpdateServiceRequest request) { @Transactional public void deleteNotes(final List noteIds, final long teamId, final long memberId) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); noteDocumentManagerDeleter.deleteByNoteIds(noteIds); noteTimeBlockManagerDeleter.noteTimeBlockManagerDeleteByIds(noteIds); noteDeleter.deleteNoteByIds(noteIds); @@ -130,26 +134,33 @@ public void deleteNotes(final List noteIds, final long teamId, final long public NoteListGetServiceResponse getNote( final long teamId, final long memberId, - final LocalDateTime lastUpdatedAt, + final LocalDateTime createdAt, final SortOrder sortOrder ) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); PageRequest pageable = PageRequest.of(INIT_NUM, PAGE_SIZE); - List noteList = getNotes(lastUpdatedAt, sortOrder, pageable); - List noteGetResponseList = noteList.stream() - .map(NoteGetResponse::of) - .collect(Collectors.toList()); - return new NoteListGetServiceResponse(noteGetResponseList); + List noteList = getNotes(createdAt, sortOrder, pageable); + List noteGetResponses = noteList.stream() + .map(note -> NoteGetResponse.of(note, getMemberName(note.getMemberId(), teamId))) + .toList(); + return new NoteListGetServiceResponse(noteGetResponses); } public NoteDetailGetServiceResponse getNoteDetail(final long teamId, final long memberId, final long noteId) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Note note = noteFinder.findById(noteId); List documentList = getDocumentListMappedByNote(noteId); List timeBlockList = getTimeBlocksMappedByNote(noteId); - return note.getNoteType() == NoteType.FREE ? - NoteFreeDetailGetServiceResponse.of(note, documentList, timeBlockList) : - NoteTemplateDetailGetServiceResponse.of(note, documentList, timeBlockList); + String memberName = getMemberName(note.getMemberId(), teamId); + return note.getNoteType() == NoteType.FREE + ? NoteFreeDetailGetServiceResponse.of(note, memberName, documentList, timeBlockList) + : NoteTemplateDetailGetServiceResponse.of(note, memberName, documentList, timeBlockList); + } + + private String getMemberName(final Long noteMemberId, final long teamId) { + return Optional.ofNullable(noteMemberId) + .map(id -> memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(id, teamId).getName()) + .orElse("알 수 없음"); } private void updateNoteDocumentManager(final List documentIds, final long noteId) { @@ -180,11 +191,11 @@ private void updateNoteTimeBlockManager(final List timeBlockIds, final lon noteTimeBlockManagerDeleter.deleteByNoteIdAndTimeBlockId(noteId, idsToRemove); } - private List getNotes(final LocalDateTime lastUpdatedAt, final SortOrder sortOrder, final PageRequest pageable) { + private List getNotes(final LocalDateTime createdAt, final SortOrder sortOrder, final PageRequest pageable) { if (sortOrder == SortOrder.DESC) { - return noteFinder.findByModifiedAtBeforeOrderByModifiedAtDesc(lastUpdatedAt, pageable); + return noteFinder.findByCreatedAtBeforeOrderByModifiedAtDesc(createdAt, pageable); } - return noteFinder.findByModifiedAtAfterOrderByModifiedAtAsc(lastUpdatedAt, pageable); + return noteFinder.findByCreatedAtAfterOrderByModifiedAtAsc(createdAt, pageable); } private List getTimeBlocksMappedByNote(final long noteId) { @@ -205,11 +216,10 @@ private List getDocumentListMappedByNote(final long noteId) { .toList(); } - private Note createNote(final NoteBase request, final String author, final String encryptedContents, final NoteType noteType) { + private Note createNote(final NoteBase request, final String encryptedContents, final NoteType noteType) { return noteSaver.createNote( Note.of( request.title(), - author, request.complete(), request.startDate(), request.endDate(), diff --git a/src/main/java/com/tiki/server/note/service/dto/response/NoteFreeDetailGetServiceResponse.java b/src/main/java/com/tiki/server/note/service/dto/response/NoteFreeDetailGetServiceResponse.java index d26e0ac3..463d4136 100644 --- a/src/main/java/com/tiki/server/note/service/dto/response/NoteFreeDetailGetServiceResponse.java +++ b/src/main/java/com/tiki/server/note/service/dto/response/NoteFreeDetailGetServiceResponse.java @@ -27,6 +27,7 @@ public record NoteFreeDetailGetServiceResponse( public static NoteFreeDetailGetServiceResponse of( final Note note, + final String author, final List documentList, final List timeBlockList ) { @@ -34,7 +35,7 @@ public static NoteFreeDetailGetServiceResponse of( note.getId(), NoteType.FREE, note.getTitle(), - note.getAuthor(), + author, note.getStartDate(), note.getEndDate(), note.isComplete(), diff --git a/src/main/java/com/tiki/server/note/service/dto/response/NoteGetResponse.java b/src/main/java/com/tiki/server/note/service/dto/response/NoteGetResponse.java index 1b64ecdc..405ed869 100644 --- a/src/main/java/com/tiki/server/note/service/dto/response/NoteGetResponse.java +++ b/src/main/java/com/tiki/server/note/service/dto/response/NoteGetResponse.java @@ -15,13 +15,13 @@ public record NoteGetResponse( LocalDateTime lastUpdatedAt ) { - public static NoteGetResponse of(final Note note) { + public static NoteGetResponse of(final Note note, final String author) { return new NoteGetResponse( note.getId(), note.getTitle(), note.getStartDate(), note.getEndDate(), - note.getAuthor(), + author, note.isComplete(), note.getUpdatedAt() ); diff --git a/src/main/java/com/tiki/server/note/service/dto/response/NoteTemplateDetailGetServiceResponse.java b/src/main/java/com/tiki/server/note/service/dto/response/NoteTemplateDetailGetServiceResponse.java index 4e86e7c2..64077565 100644 --- a/src/main/java/com/tiki/server/note/service/dto/response/NoteTemplateDetailGetServiceResponse.java +++ b/src/main/java/com/tiki/server/note/service/dto/response/NoteTemplateDetailGetServiceResponse.java @@ -30,6 +30,7 @@ public record NoteTemplateDetailGetServiceResponse( public static NoteTemplateDetailGetServiceResponse of( final Note note, + final String author, final List documentList, final List timeBlockList ) { @@ -38,7 +39,7 @@ public static NoteTemplateDetailGetServiceResponse of( note.getId(), NoteType.TEMPLATE, note.getTitle(), - note.getAuthor(), + author, note.getStartDate(), note.getEndDate(), note.isComplete(), diff --git a/src/main/java/com/tiki/server/team/service/TeamService.java b/src/main/java/com/tiki/server/team/service/TeamService.java index 0cebe1e4..89b75c59 100644 --- a/src/main/java/com/tiki/server/team/service/TeamService.java +++ b/src/main/java/com/tiki/server/team/service/TeamService.java @@ -91,7 +91,7 @@ private MemberTeamManager createMemberTeamManager(Member member, Team team, Posi } private void checkIsAdmin(long memberId, long teamId) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); if (!memberTeamManager.getPosition().equals(ADMIN)) { throw new TeamException(INVALID_AUTHORIZATION_DELETE); } diff --git a/src/main/java/com/tiki/server/timeblock/service/TimeBlockService.java b/src/main/java/com/tiki/server/timeblock/service/TimeBlockService.java index c0b29131..8e74a5b7 100644 --- a/src/main/java/com/tiki/server/timeblock/service/TimeBlockService.java +++ b/src/main/java/com/tiki/server/timeblock/service/TimeBlockService.java @@ -48,7 +48,7 @@ public TimeBlockCreateResponse createTimeBlock( TimeBlockCreateRequest request ) { Team team = teamFinder.findById(teamId); - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Position accessiblePosition = Position.getAccessiblePosition(type); memberTeamManager.checkMemberAccessible(accessiblePosition); TimeBlock timeBlock = saveTimeBlock(team, accessiblePosition, request); @@ -58,7 +58,7 @@ public TimeBlockCreateResponse createTimeBlock( public TimelineGetResponse getTimeline(long memberId, long teamId, String type, String date) { Team team = teamFinder.findById(teamId); - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Position accessiblePosition = Position.getAccessiblePosition(type); memberTeamManager.checkMemberAccessible(accessiblePosition); List timeBlocks = timeBlockFinder.findByTeamAndAccessiblePositionAndDate( @@ -67,7 +67,7 @@ public TimelineGetResponse getTimeline(long memberId, long teamId, String type, } public TimeBlockDetailGetResponse getTimeBlockDetail(long memberId, long teamId, long timeBlockId) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); TimeBlock timeBlock = timeBlockFinder.findByIdOrElseThrow(timeBlockId); memberTeamManager.checkMemberAccessible(timeBlock.getAccessiblePosition()); List documents = documentFinder.findAllByTimeBlockId(timeBlockId); @@ -76,7 +76,7 @@ public TimeBlockDetailGetResponse getTimeBlockDetail(long memberId, long teamId, @Transactional public void deleteTimeBlock(long memberId, long teamId, long timeBlockId) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); TimeBlock timeBlock = timeBlockFinder.findByIdOrElseThrow(timeBlockId); memberTeamManager.checkMemberAccessible(timeBlock.getAccessiblePosition()); documentDeleter.deleteAllByTimeBlockId(timeBlock.getId());