From 2ece31a1cc26795f2d06f216adc34c75d898a09a Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 13:20:27 +0900 Subject: [PATCH 01/44] =?UTF-8?q?refactor(DocumentController):=20url=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit teamId와 foderId가 url에 드러나도록 수정 --- .../tiki/server/document/controller/DocumentController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/tiki/server/document/controller/DocumentController.java b/src/main/java/com/tiki/server/document/controller/DocumentController.java index 47be9c77..7c8cf5cb 100644 --- a/src/main/java/com/tiki/server/document/controller/DocumentController.java +++ b/src/main/java/com/tiki/server/document/controller/DocumentController.java @@ -57,10 +57,11 @@ public ResponseEntity deleteDocument( return ResponseEntity.noContent().build(); } - @PostMapping("/documents") + @PostMapping("/teams/{teamId}/documents") public ResponseEntity> createDocuments( Principal principal, - @RequestHeader("team-id") long teamId, + @PathVariable long teamId, + @RequestParam(required = false) long folderId, @RequestBody DocumentsCreateRequest request ) { long memberId = Long.parseLong(principal.getName()); From 543fa1475511cf8bc21c04cf6ab64f20949cab68 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 13:21:36 +0900 Subject: [PATCH 02/44] =?UTF-8?q?chore(DocumentController):=20created=20UR?= =?UTF-8?q?I=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/document/controller/DocumentController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/tiki/server/document/controller/DocumentController.java b/src/main/java/com/tiki/server/document/controller/DocumentController.java index 7c8cf5cb..821f1b46 100644 --- a/src/main/java/com/tiki/server/document/controller/DocumentController.java +++ b/src/main/java/com/tiki/server/document/controller/DocumentController.java @@ -66,7 +66,7 @@ public ResponseEntity> createDocuments( ) { long memberId = Long.parseLong(principal.getName()); DocumentsCreateResponse response = documentService.createDocuments(memberId, teamId, request); - return ResponseEntity.created(UriGenerator.getUri("api/v1/documents")) + return ResponseEntity.created(UriGenerator.getUri("teams/" + teamId + "/documents")) .body(SuccessResponse.success(SUCCESS_CREATE_DOCUMENTS.getMessage(), response)); } From 2450ed92329a8e017b2959a8247dc5cf18627e56 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 13:22:44 +0900 Subject: [PATCH 03/44] =?UTF-8?q?chore(DocumentController):=20folderId=20?= =?UTF-8?q?=ED=83=80=EC=9E=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/document/controller/DocumentController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/tiki/server/document/controller/DocumentController.java b/src/main/java/com/tiki/server/document/controller/DocumentController.java index 821f1b46..e26ced15 100644 --- a/src/main/java/com/tiki/server/document/controller/DocumentController.java +++ b/src/main/java/com/tiki/server/document/controller/DocumentController.java @@ -61,7 +61,7 @@ public ResponseEntity deleteDocument( public ResponseEntity> createDocuments( Principal principal, @PathVariable long teamId, - @RequestParam(required = false) long folderId, + @RequestParam(required = false) Long folderId, @RequestBody DocumentsCreateRequest request ) { long memberId = Long.parseLong(principal.getName()); From 57f419e001255c01d85c661450a1973d7634fad4 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 13:52:53 +0900 Subject: [PATCH 04/44] =?UTF-8?q?feat(DocumentService):=20=ED=8F=B4?= =?UTF-8?q?=EB=8D=94=20=EA=B2=80=EC=A6=9D=20=EB=A1=9C=EC=A7=81=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 폴더의 팀 id 검증 --- .../server/document/service/DocumentService.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 7d10c34c..9020b96e 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -1,5 +1,7 @@ package com.tiki.server.document.service; +import static com.tiki.server.document.message.ErrorCode.INVALID_AUTHORIZATION; + import java.util.List; import org.springframework.stereotype.Service; @@ -14,7 +16,9 @@ import com.tiki.server.document.dto.response.DocumentsCreateResponse; import com.tiki.server.document.dto.response.DocumentsGetResponse; import com.tiki.server.document.entity.Document; +import com.tiki.server.document.exception.DocumentException; import com.tiki.server.folder.adapter.FolderFinder; +import com.tiki.server.folder.entity.Folder; import com.tiki.server.memberteammanager.adapter.MemberTeamManagerFinder; import com.tiki.server.memberteammanager.entity.MemberTeamManager; @@ -49,6 +53,7 @@ public void deleteDocument(long memberId, long teamId, long documentId) { @Transactional public DocumentsCreateResponse createDocuments(long memberId, long teamId, DocumentsCreateRequest request) { memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); + validateFolder(request.folderId(), teamId); checkFolderIsExist(request.folderId()); List documentIds = request.documents().stream() .map(document -> saveDocument(teamId, request.folderId(), document).getId()) @@ -67,6 +72,16 @@ private DocumentsGetResponse getAllDocumentsByType(long teamId, Position accessi return DocumentsGetResponse.from(documents); } + private void validateFolder(Long folderId, long teamId) { + if (folderId == null) { + return; + } + Folder folder = folderFinder.findById(folderId); + if (folder.getTeamId() != teamId) { + throw new DocumentException(INVALID_AUTHORIZATION); + } + } + private void checkFolderIsExist(Long folderId) { if (folderId == null) { return; From 5e3865ab42e86b1ade6c3d6e72ee09f7e37df644 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 13:53:22 +0900 Subject: [PATCH 05/44] =?UTF-8?q?feat(DocumentService):=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9D=B4=EB=A6=84=20=EC=A4=91=EB=B3=B5=20=EA=B2=80?= =?UTF-8?q?=EC=A6=9D=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/document/service/DocumentService.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 9020b96e..d27f3446 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -54,10 +54,12 @@ public void deleteDocument(long memberId, long teamId, long documentId) { public DocumentsCreateResponse createDocuments(long memberId, long teamId, DocumentsCreateRequest request) { memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); validateFolder(request.folderId(), teamId); + List documents = documentFinder.findByTeamIdAndFolderId(teamId, request.folderId()); checkFolderIsExist(request.folderId()); List documentIds = request.documents().stream() - .map(document -> saveDocument(teamId, request.folderId(), document).getId()) - .toList(); + .filter(document -> checkFileNameIsNotDuplicated(document.fileName(), documents)) + .map(document -> saveDocument(teamId, request.folderId(), document).getId()) + .toList(); return DocumentsCreateResponse.from(documentIds); } @@ -94,4 +96,9 @@ private Document saveDocument(long teamId, Long folderId, DocumentCreateRequest request.fileName(), request.fileUrl(), request.capacity(), teamId, folderId); return documentSaver.save(document); } + + private boolean checkFileNameIsNotDuplicated(final String fileName, final List documents) { + return documents.stream() + .noneMatch(document -> document.getFileName().equals(fileName)); + } } From 44c02602b6853574649fa28410d80ad102b752ba Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:20:55 +0900 Subject: [PATCH 06/44] =?UTF-8?q?feat(ErrorCode):=20=EC=A4=91=EB=B3=B5?= =?UTF-8?q?=EB=90=9C=20=ED=8C=8C=EC=9D=BC=20=EC=9D=B4=EB=A6=84=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EC=97=90=EB=9F=AC=20=EC=BD=94=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tiki/server/document/message/ErrorCode.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/tiki/server/document/message/ErrorCode.java b/src/main/java/com/tiki/server/document/message/ErrorCode.java index c78424b2..3a310735 100644 --- a/src/main/java/com/tiki/server/document/message/ErrorCode.java +++ b/src/main/java/com/tiki/server/document/message/ErrorCode.java @@ -1,6 +1,7 @@ package com.tiki.server.document.message; import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.CONFLICT; import static org.springframework.http.HttpStatus.FORBIDDEN; import static org.springframework.http.HttpStatus.NOT_FOUND; @@ -20,7 +21,10 @@ public enum ErrorCode { INVALID_AUTHORIZATION(FORBIDDEN, "문서에 대한 권한이 없습니다."), /* 404 NOT_FOUND : 자원을 찾을 수 없음 */ - INVALID_DOCUMENT(NOT_FOUND, "유효하지 않은 문서입니다."); + INVALID_DOCUMENT(NOT_FOUND, "유효하지 않은 문서입니다."), + + /* 409 CONFLICT : 중복된 자원 */ + DOCUMENT_NAME_DUPLICATE(CONFLICT, "중복된 파일 이름입니다."); private final HttpStatus httpStatus; private final String message; From 1d57b96c8b94bb9815507a6d6dc7b44e91abe693 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:32:44 +0900 Subject: [PATCH 07/44] =?UTF-8?q?feat(DocumentService):=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9D=B4=EB=A6=84=20=EC=A4=91=EB=B3=B5=20=EC=97=AC?= =?UTF-8?q?=EB=B6=80=20=EA=B2=80=EC=A6=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 중복된 파일 이름이 존재한다면 예외 발생 --- .../document/service/DocumentService.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) 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 d27f3446..be3c6e1e 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -1,5 +1,6 @@ package com.tiki.server.document.service; +import static com.tiki.server.document.message.ErrorCode.DOCUMENT_NAME_DUPLICATE; import static com.tiki.server.document.message.ErrorCode.INVALID_AUTHORIZATION; import java.util.List; @@ -54,10 +55,9 @@ public void deleteDocument(long memberId, long teamId, long documentId) { public DocumentsCreateResponse createDocuments(long memberId, long teamId, DocumentsCreateRequest request) { memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); validateFolder(request.folderId(), teamId); - List documents = documentFinder.findByTeamIdAndFolderId(teamId, request.folderId()); + validateFileName(request.folderId(), teamId, request); checkFolderIsExist(request.folderId()); List documentIds = request.documents().stream() - .filter(document -> checkFileNameIsNotDuplicated(document.fileName(), documents)) .map(document -> saveDocument(teamId, request.folderId(), document).getId()) .toList(); return DocumentsCreateResponse.from(documentIds); @@ -97,8 +97,16 @@ private Document saveDocument(long teamId, Long folderId, DocumentCreateRequest return documentSaver.save(document); } - private boolean checkFileNameIsNotDuplicated(final String fileName, final List documents) { - return documents.stream() - .noneMatch(document -> document.getFileName().equals(fileName)); + private void validateFileName(final Long folderId, final long teamId, final DocumentsCreateRequest request) { + List documents = documentFinder.findByTeamIdAndFolderId(teamId, folderId); + for (Document document : documents) { + checkFileNameIsDuplicated(document.getFileName(), request); + } + } + + private void checkFileNameIsDuplicated(final String fileName, final DocumentsCreateRequest request) { + if (request.documents().stream().anyMatch(document -> document.fileName().equals(fileName))) { + throw new DocumentException(DOCUMENT_NAME_DUPLICATE); + } } } From 0e0af792455ab00adf4783e83d93313ed8ba8ac4 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:33:08 +0900 Subject: [PATCH 08/44] =?UTF-8?q?chore(DocumentService):=20=EB=AF=B8?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20=EB=A9=94=EC=86=8C=EB=93=9C=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/document/service/DocumentService.java | 8 -------- 1 file changed, 8 deletions(-) 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 be3c6e1e..fbbd4825 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -56,7 +56,6 @@ public DocumentsCreateResponse createDocuments(long memberId, long teamId, Docum memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); validateFolder(request.folderId(), teamId); validateFileName(request.folderId(), teamId, request); - checkFolderIsExist(request.folderId()); List documentIds = request.documents().stream() .map(document -> saveDocument(teamId, request.folderId(), document).getId()) .toList(); @@ -84,13 +83,6 @@ private void validateFolder(Long folderId, long teamId) { } } - private void checkFolderIsExist(Long folderId) { - if (folderId == null) { - return; - } - folderFinder.findById(folderId); - } - private Document saveDocument(long teamId, Long folderId, DocumentCreateRequest request) { Document document = Document.of( request.fileName(), request.fileUrl(), request.capacity(), teamId, folderId); From 18808786d45b07fe7bbd93e221bf3c8644290a61 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:34:31 +0900 Subject: [PATCH 09/44] =?UTF-8?q?feat(Folder):=20=ED=8C=80=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EB=94=94=20=EA=B2=80=EC=A6=9D=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/folder/entity/Folder.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/tiki/server/folder/entity/Folder.java b/src/main/java/com/tiki/server/folder/entity/Folder.java index 21145e84..320344cb 100644 --- a/src/main/java/com/tiki/server/folder/entity/Folder.java +++ b/src/main/java/com/tiki/server/folder/entity/Folder.java @@ -1,8 +1,10 @@ package com.tiki.server.folder.entity; +import static com.tiki.server.document.message.ErrorCode.INVALID_AUTHORIZATION; import static jakarta.persistence.GenerationType.IDENTITY; import com.tiki.server.common.entity.BaseTime; +import com.tiki.server.document.exception.DocumentException; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -31,6 +33,12 @@ public Folder(String name, Folder parentFolder, long teamId) { this.teamId = teamId; } + public void validateTeamId(final long teamId) { + if (this.teamId != teamId) { + throw new DocumentException(INVALID_AUTHORIZATION); + } + } + private String generatePath(Folder parentFolder) { if (parentFolder == null) { return ""; From 35acb3cc1d8270884e151da53dd5ffb93855256b Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:35:13 +0900 Subject: [PATCH 10/44] =?UTF-8?q?refactor(DocumentService):=20=ED=8C=80=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EB=94=94=20=EA=B2=80=EC=A6=9D=20=EC=B1=85?= =?UTF-8?q?=EC=9E=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/document/service/DocumentService.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) 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 fbbd4825..b525aa24 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -1,7 +1,6 @@ package com.tiki.server.document.service; import static com.tiki.server.document.message.ErrorCode.DOCUMENT_NAME_DUPLICATE; -import static com.tiki.server.document.message.ErrorCode.INVALID_AUTHORIZATION; import java.util.List; @@ -78,9 +77,7 @@ private void validateFolder(Long folderId, long teamId) { return; } Folder folder = folderFinder.findById(folderId); - if (folder.getTeamId() != teamId) { - throw new DocumentException(INVALID_AUTHORIZATION); - } + folder.validateTeamId(teamId); } private Document saveDocument(long teamId, Long folderId, DocumentCreateRequest request) { From 2241f3f4477f577aab74b5e449b1b3d69b584b53 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:36:59 +0900 Subject: [PATCH 11/44] =?UTF-8?q?refactor(DocumentController):=20folderId?= =?UTF-8?q?=20=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/document/controller/DocumentController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/tiki/server/document/controller/DocumentController.java b/src/main/java/com/tiki/server/document/controller/DocumentController.java index e26ced15..b9610d8a 100644 --- a/src/main/java/com/tiki/server/document/controller/DocumentController.java +++ b/src/main/java/com/tiki/server/document/controller/DocumentController.java @@ -65,7 +65,7 @@ public ResponseEntity> createDocuments( @RequestBody DocumentsCreateRequest request ) { long memberId = Long.parseLong(principal.getName()); - DocumentsCreateResponse response = documentService.createDocuments(memberId, teamId, request); + DocumentsCreateResponse response = documentService.createDocuments(memberId, teamId, folderId, request); return ResponseEntity.created(UriGenerator.getUri("teams/" + teamId + "/documents")) .body(SuccessResponse.success(SUCCESS_CREATE_DOCUMENTS.getMessage(), response)); } From dec324a1b31e1f3eb32603adcc39b8b87ef55f28 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:37:20 +0900 Subject: [PATCH 12/44] =?UTF-8?q?refactor(DocumentService):=20folderId=20?= =?UTF-8?q?=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/document/service/DocumentService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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 b525aa24..2fc9cadc 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -51,12 +51,13 @@ public void deleteDocument(long memberId, long teamId, long documentId) { } @Transactional - public DocumentsCreateResponse createDocuments(long memberId, long teamId, DocumentsCreateRequest request) { + public DocumentsCreateResponse createDocuments(final long memberId, final long teamId, + final Long folderId, final DocumentsCreateRequest request) { memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); - validateFolder(request.folderId(), teamId); - validateFileName(request.folderId(), teamId, request); + validateFolder(folderId, teamId); + validateFileName(folderId, teamId, request); List documentIds = request.documents().stream() - .map(document -> saveDocument(teamId, request.folderId(), document).getId()) + .map(document -> saveDocument(teamId, folderId, document).getId()) .toList(); return DocumentsCreateResponse.from(documentIds); } From 1601f99312eee54057910c66055104dce3a125be Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:41:45 +0900 Subject: [PATCH 13/44] =?UTF-8?q?refactor(DocumentService):=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=95=84=EC=9D=B4=EB=94=94=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=83=9D=EC=84=B1=20=EB=A1=9C=EC=A7=81=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/document/service/DocumentService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 2fc9cadc..331e11bd 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -56,9 +56,7 @@ public DocumentsCreateResponse createDocuments(final long memberId, final long t memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); validateFolder(folderId, teamId); validateFileName(folderId, teamId, request); - List documentIds = request.documents().stream() - .map(document -> saveDocument(teamId, folderId, document).getId()) - .toList(); + List documentIds = saveDocuments(teamId, folderId, request); return DocumentsCreateResponse.from(documentIds); } @@ -81,6 +79,12 @@ private void validateFolder(Long folderId, long teamId) { folder.validateTeamId(teamId); } + private List saveDocuments(final long teamId, final Long folderId, final DocumentsCreateRequest request) { + return request.documents().stream() + .map(document -> saveDocument(teamId, folderId, document).getId()) + .toList(); + } + private Document saveDocument(long teamId, Long folderId, DocumentCreateRequest request) { Document document = Document.of( request.fileName(), request.fileUrl(), request.capacity(), teamId, folderId); From 6a57b011128a2bed38a0c1192ac31113a8f06993 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:42:16 +0900 Subject: [PATCH 14/44] =?UTF-8?q?style(DocumentService):=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EC=84=A0=EC=96=B8=20=EC=88=9C=EC=84=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../document/service/DocumentService.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) 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 331e11bd..95d1b91d 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -79,18 +79,6 @@ private void validateFolder(Long folderId, long teamId) { folder.validateTeamId(teamId); } - private List saveDocuments(final long teamId, final Long folderId, final DocumentsCreateRequest request) { - return request.documents().stream() - .map(document -> saveDocument(teamId, folderId, document).getId()) - .toList(); - } - - private Document saveDocument(long teamId, Long folderId, DocumentCreateRequest request) { - Document document = Document.of( - request.fileName(), request.fileUrl(), request.capacity(), teamId, folderId); - return documentSaver.save(document); - } - private void validateFileName(final Long folderId, final long teamId, final DocumentsCreateRequest request) { List documents = documentFinder.findByTeamIdAndFolderId(teamId, folderId); for (Document document : documents) { @@ -103,4 +91,16 @@ private void checkFileNameIsDuplicated(final String fileName, final DocumentsCre throw new DocumentException(DOCUMENT_NAME_DUPLICATE); } } + + private List saveDocuments(final long teamId, final Long folderId, final DocumentsCreateRequest request) { + return request.documents().stream() + .map(document -> saveDocument(teamId, folderId, document).getId()) + .toList(); + } + + private Document saveDocument(long teamId, Long folderId, DocumentCreateRequest request) { + Document document = Document.of( + request.fileName(), request.fileUrl(), request.capacity(), teamId, folderId); + return documentSaver.save(document); + } } From 739d99d2f75e7d6817b96e4e946b823141efca69 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:44:56 +0900 Subject: [PATCH 15/44] =?UTF-8?q?refactor(DocumentsCreateRequest):=20?= =?UTF-8?q?=ED=8F=B4=EB=8D=94=20id=20=EC=9A=94=EC=B2=AD=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/document/dto/request/DocumentsCreateRequest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/tiki/server/document/dto/request/DocumentsCreateRequest.java b/src/main/java/com/tiki/server/document/dto/request/DocumentsCreateRequest.java index d417496f..91dcc8a8 100644 --- a/src/main/java/com/tiki/server/document/dto/request/DocumentsCreateRequest.java +++ b/src/main/java/com/tiki/server/document/dto/request/DocumentsCreateRequest.java @@ -3,7 +3,6 @@ import java.util.List; public record DocumentsCreateRequest( - List documents, - Long folderId + List documents ) { } From 728eccc7fbb48ae1e39baef16e5b1b48ee192e0e Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:51:43 +0900 Subject: [PATCH 16/44] =?UTF-8?q?refactor(FolderController):=20url=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit teamId와 folderId가 url에 드러나도록 수정 --- .../com/tiki/server/folder/controller/FolderController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tiki/server/folder/controller/FolderController.java b/src/main/java/com/tiki/server/folder/controller/FolderController.java index 0f70b546..7dfef98a 100644 --- a/src/main/java/com/tiki/server/folder/controller/FolderController.java +++ b/src/main/java/com/tiki/server/folder/controller/FolderController.java @@ -27,12 +27,12 @@ @RestController @RequiredArgsConstructor -@RequestMapping("api/v1/folders") +@RequestMapping("api/v1") public class FolderController { private final FolderService folderService; - @GetMapping() + @GetMapping("/teams/{teamId}/folders") public ResponseEntity> getFolders( final Principal principal, @RequestHeader("team-id") long teamId, @@ -43,7 +43,7 @@ public ResponseEntity> getFolders( return ResponseEntity.ok(success(SUCCESS_GET_FOLDERS.getMessage(), response)); } - @PostMapping() + @PostMapping("/teams/{teamId}/folders") public ResponseEntity> createFolder( Principal principal, @RequestHeader("team-id") long teamId, From 83d625c40b5c0378f460087a05d8abbc41282ade Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:52:19 +0900 Subject: [PATCH 17/44] =?UTF-8?q?style(DocumentController):=20=EB=AF=B8?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20import=EB=AC=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/document/controller/DocumentController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/tiki/server/document/controller/DocumentController.java b/src/main/java/com/tiki/server/document/controller/DocumentController.java index b9610d8a..0be55e51 100644 --- a/src/main/java/com/tiki/server/document/controller/DocumentController.java +++ b/src/main/java/com/tiki/server/document/controller/DocumentController.java @@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; From 1d93bdd70970da0580c478620e01fedc3e4706f9 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 15:57:14 +0900 Subject: [PATCH 18/44] =?UTF-8?q?refactor(FolderController):=20teamId=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/folder/controller/FolderController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tiki/server/folder/controller/FolderController.java b/src/main/java/com/tiki/server/folder/controller/FolderController.java index 7dfef98a..47e91ca0 100644 --- a/src/main/java/com/tiki/server/folder/controller/FolderController.java +++ b/src/main/java/com/tiki/server/folder/controller/FolderController.java @@ -9,9 +9,9 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -35,7 +35,7 @@ public class FolderController { @GetMapping("/teams/{teamId}/folders") public ResponseEntity> getFolders( final Principal principal, - @RequestHeader("team-id") long teamId, + @PathVariable long teamId, @RequestParam(defaultValue = ROOT_PATH) String path ) { long memberId = Long.parseLong(principal.getName()); @@ -46,7 +46,7 @@ public ResponseEntity> getFolders( @PostMapping("/teams/{teamId}/folders") public ResponseEntity> createFolder( Principal principal, - @RequestHeader("team-id") long teamId, + @PathVariable long teamId, @RequestBody FolderCreateRequest request ) { long memberId = Long.parseLong(principal.getName()); From 4d5671347b7ad3bf9caf004b2703febd5a14304c Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:01:48 +0900 Subject: [PATCH 19/44] =?UTF-8?q?refactor(FolderController):=20=ED=8F=B4?= =?UTF-8?q?=EB=8D=94=20id=20=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/folder/controller/FolderController.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/tiki/server/folder/controller/FolderController.java b/src/main/java/com/tiki/server/folder/controller/FolderController.java index 47e91ca0..e35bf28b 100644 --- a/src/main/java/com/tiki/server/folder/controller/FolderController.java +++ b/src/main/java/com/tiki/server/folder/controller/FolderController.java @@ -36,10 +36,11 @@ public class FolderController { public ResponseEntity> getFolders( final Principal principal, @PathVariable long teamId, + @RequestParam(required = false) Long folderId, @RequestParam(defaultValue = ROOT_PATH) String path ) { long memberId = Long.parseLong(principal.getName()); - FoldersGetResponse response = folderService.get(memberId, teamId, path); + FoldersGetResponse response = folderService.get(memberId, teamId, folderId, path); return ResponseEntity.ok(success(SUCCESS_GET_FOLDERS.getMessage(), response)); } @@ -47,10 +48,11 @@ public ResponseEntity> getFolders( public ResponseEntity> createFolder( Principal principal, @PathVariable long teamId, + @RequestParam(required = false) Long folderId, @RequestBody FolderCreateRequest request ) { long memberId = Long.parseLong(principal.getName()); - FolderCreateResponse response = folderService.create(memberId, teamId, request); + FolderCreateResponse response = folderService.create(memberId, teamId, folderId, request); return ResponseEntity.created(UriGenerator.getUri("api/v1/folders/" + response.folderId())) .body(success(SUCCESS_CREATE_FOLDER.getMessage(), response)); } From 37c005a366426fa517b05af29804d6fa3320fc27 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:04:32 +0900 Subject: [PATCH 20/44] =?UTF-8?q?refactor(FolderService):=20=ED=8F=B4?= =?UTF-8?q?=EB=8D=94=20=EC=B0=BE=EA=B8=B0=20=EC=8B=9C,=20=ED=8C=80=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EB=94=94=20=EA=B2=80=EC=A6=9D=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/folder/service/FolderService.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) 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 8358976c..0509643b 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -24,25 +24,30 @@ public class FolderService { private final FolderSaver folderSaver; private final MemberTeamManagerFinder memberTeamManagerFinder; - public FoldersGetResponse get(final long memberId, final long teamId, final String path) { + public FoldersGetResponse get(final long memberId, final long teamId, + final Long folderId, final String path) { memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + Folder folder = getFolder(teamId, folderId); List folders = folderFinder.findByTeamIdAndPath(teamId, path); return FoldersGetResponse.from(folders); } @Transactional - public FolderCreateResponse create(long memberId, long teamId, FolderCreateRequest request) { + public FolderCreateResponse create(final long memberId, final long teamId, + final Long folderId, final FolderCreateRequest request) { // 같은 레벨 파일명 중복 방지 로직 추가 필요 memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); - Folder parentFolder = getFolder(request.parentId()); + Folder parentFolder = getFolder(teamId, request.parentId()); Folder folder = folderSaver.save(new Folder(request.name(), parentFolder, teamId)); return FolderCreateResponse.from(folder.getId()); } - private Folder getFolder(Long folderId) { + private Folder getFolder(final long teamId, final Long folderId) { if (folderId == null) { return null; } - return folderFinder.findById(folderId); + Folder folder = folderFinder.findById(folderId); + folder.validateTeamId(teamId); + return folder; } } From 933806530a8d02b2fdbb8587101d6a97591fbd2c Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:05:24 +0900 Subject: [PATCH 21/44] =?UTF-8?q?refactor(FolderController):=20url?= =?UTF-8?q?=EC=97=90=EC=84=9C=20path=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/folder/controller/FolderController.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tiki/server/folder/controller/FolderController.java b/src/main/java/com/tiki/server/folder/controller/FolderController.java index e35bf28b..ca827830 100644 --- a/src/main/java/com/tiki/server/folder/controller/FolderController.java +++ b/src/main/java/com/tiki/server/folder/controller/FolderController.java @@ -36,11 +36,10 @@ public class FolderController { public ResponseEntity> getFolders( final Principal principal, @PathVariable long teamId, - @RequestParam(required = false) Long folderId, - @RequestParam(defaultValue = ROOT_PATH) String path + @RequestParam(required = false) Long folderId ) { long memberId = Long.parseLong(principal.getName()); - FoldersGetResponse response = folderService.get(memberId, teamId, folderId, path); + FoldersGetResponse response = folderService.get(memberId, teamId, folderId); return ResponseEntity.ok(success(SUCCESS_GET_FOLDERS.getMessage(), response)); } From 28400df2b95d7aa6a06824ba83f75f749ba02ed2 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:05:54 +0900 Subject: [PATCH 22/44] =?UTF-8?q?refactor(FolderService):=20path=20?= =?UTF-8?q?=EC=A0=84=EB=8B=AC=20=EB=B0=A9=EC=8B=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tiki/server/folder/service/FolderService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 0509643b..816e1de4 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -25,9 +25,10 @@ public class FolderService { private final MemberTeamManagerFinder memberTeamManagerFinder; public FoldersGetResponse get(final long memberId, final long teamId, - final Long folderId, final String path) { + final Long folderId) { memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); Folder folder = getFolder(teamId, folderId); + String path = folder.getPath(); List folders = folderFinder.findByTeamIdAndPath(teamId, path); return FoldersGetResponse.from(folders); } From b9561b433fcf19df8dd533101c777beb3c4c6b47 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:06:28 +0900 Subject: [PATCH 23/44] =?UTF-8?q?refactor(FolderCreateRequest):=20?= =?UTF-8?q?=EB=B6=80=EB=AA=A8=20=ED=8F=B4=EB=8D=94=20id=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/folder/dto/request/FolderCreateRequest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/tiki/server/folder/dto/request/FolderCreateRequest.java b/src/main/java/com/tiki/server/folder/dto/request/FolderCreateRequest.java index af4aa4f8..799af52f 100644 --- a/src/main/java/com/tiki/server/folder/dto/request/FolderCreateRequest.java +++ b/src/main/java/com/tiki/server/folder/dto/request/FolderCreateRequest.java @@ -3,7 +3,6 @@ import lombok.NonNull; public record FolderCreateRequest( - @NonNull String name, - Long parentId + @NonNull String name ) { } From f52140399d65ac445b70146c928d06a41c67ba45 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:17:28 +0900 Subject: [PATCH 24/44] =?UTF-8?q?refactor(FolderService):=20=ED=8F=B4?= =?UTF-8?q?=EB=8D=94=20path=20=EC=B6=94=EC=B6=9C=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=A9=94=EC=86=8C=EB=93=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/folder/service/FolderService.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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 816e1de4..19343e52 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -1,5 +1,7 @@ package com.tiki.server.folder.service; +import static com.tiki.server.folder.constant.Constant.ROOT_PATH; + import java.util.List; import org.springframework.stereotype.Service; @@ -27,8 +29,7 @@ public class FolderService { public FoldersGetResponse get(final long memberId, final long teamId, final Long folderId) { memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); - Folder folder = getFolder(teamId, folderId); - String path = folder.getPath(); + String path = getFolderPath(teamId, folderId); List folders = folderFinder.findByTeamIdAndPath(teamId, path); return FoldersGetResponse.from(folders); } @@ -51,4 +52,13 @@ private Folder getFolder(final long teamId, final Long folderId) { folder.validateTeamId(teamId); return folder; } + + private String getFolderPath(final long teamId, final Long folderId) { + if (folderId == null) { + return ROOT_PATH; + } + Folder folder = folderFinder.findById(folderId); + folder.validateTeamId(teamId); + return folder.getPath(); + } } From aa0600b1de05864042af6c589c79f4f5e10ae485 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:18:01 +0900 Subject: [PATCH 25/44] =?UTF-8?q?feat(Folder):=20=EC=9E=90=EC=8B=9D=20?= =?UTF-8?q?=ED=8F=B4=EB=8D=94=20path=20=EB=B0=98=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/folder/entity/Folder.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/tiki/server/folder/entity/Folder.java b/src/main/java/com/tiki/server/folder/entity/Folder.java index 320344cb..c0c5b849 100644 --- a/src/main/java/com/tiki/server/folder/entity/Folder.java +++ b/src/main/java/com/tiki/server/folder/entity/Folder.java @@ -39,6 +39,10 @@ public void validateTeamId(final long teamId) { } } + public String getChildPath() { + return path + "/" + id; + } + private String generatePath(Folder parentFolder) { if (parentFolder == null) { return ""; From f50af724abf8f0940d3af576c1f04f42f1a83232 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:21:34 +0900 Subject: [PATCH 26/44] =?UTF-8?q?feat(ErrorCode):=20=EC=A4=91=EB=B3=B5?= =?UTF-8?q?=EB=90=9C=20=ED=8F=B4=EB=8D=94=20=EC=9D=B4=EB=A6=84=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EC=97=90=EB=9F=AC=20=EC=BD=94=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/folder/message/ErrorCode.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/tiki/server/folder/message/ErrorCode.java b/src/main/java/com/tiki/server/folder/message/ErrorCode.java index 2ffa4988..57bd9afe 100644 --- a/src/main/java/com/tiki/server/folder/message/ErrorCode.java +++ b/src/main/java/com/tiki/server/folder/message/ErrorCode.java @@ -1,5 +1,6 @@ package com.tiki.server.folder.message; +import static org.springframework.http.HttpStatus.CONFLICT; import static org.springframework.http.HttpStatus.NOT_FOUND; import org.springframework.http.HttpStatus; @@ -12,7 +13,10 @@ public enum ErrorCode { /* 404 NOT_FOUND : 자원을 찾을 수 없음 */ - INVALID_FOLDER(NOT_FOUND, "유효하지 않은 폴더입니다."); + INVALID_FOLDER(NOT_FOUND, "유효하지 않은 폴더입니다."), + + /* 409 CONFLICT : 중복된 자원 */ + FOLDER_NAME_DUPLICATE(CONFLICT, "중복된 폴더 이름입니다.");; private final HttpStatus httpStatus; private final String message; From 1056a118695486e2ca97ce110babafcd208bb203 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:23:04 +0900 Subject: [PATCH 27/44] =?UTF-8?q?feat(FolderService):=20=ED=8F=B4=EB=8D=94?= =?UTF-8?q?=20=EC=9D=B4=EB=A6=84=20=EC=A4=91=EB=B3=B5=20=EC=97=AC=EB=B6=80?= =?UTF-8?q?=20=EA=B2=80=EC=A6=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 중복된 폴더 이름이 존재한다면 예외 발생 --- .../tiki/server/folder/service/FolderService.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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 19343e52..71670913 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -1,6 +1,7 @@ package com.tiki.server.folder.service; import static com.tiki.server.folder.constant.Constant.ROOT_PATH; +import static com.tiki.server.folder.message.ErrorCode.FOLDER_NAME_DUPLICATE; import java.util.List; @@ -13,6 +14,7 @@ import com.tiki.server.folder.dto.response.FolderCreateResponse; import com.tiki.server.folder.dto.response.FoldersGetResponse; import com.tiki.server.folder.entity.Folder; +import com.tiki.server.folder.exception.FolderException; import com.tiki.server.memberteammanager.adapter.MemberTeamManagerFinder; import lombok.RequiredArgsConstructor; @@ -37,9 +39,10 @@ public FoldersGetResponse get(final long memberId, final long teamId, @Transactional public FolderCreateResponse create(final long memberId, final long teamId, final Long folderId, final FolderCreateRequest request) { - // 같은 레벨 파일명 중복 방지 로직 추가 필요 memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); - Folder parentFolder = getFolder(teamId, request.parentId()); + Folder parentFolder = getFolder(teamId, folderId); + String path = parentFolder.getChildPath(); + validateFolderName(teamId, path, request); Folder folder = folderSaver.save(new Folder(request.name(), parentFolder, teamId)); return FolderCreateResponse.from(folder.getId()); } @@ -61,4 +64,11 @@ private String getFolderPath(final long teamId, final Long folderId) { folder.validateTeamId(teamId); return folder.getPath(); } + + private void validateFolderName(final long teamId, final String path, final FolderCreateRequest request) { + List folders = folderFinder.findByTeamIdAndPath(teamId, path); + if (folders.stream().anyMatch(folder -> folder.getName().equals(request.name()))) { + throw new FolderException(FOLDER_NAME_DUPLICATE); + } + } } From af6c18dff4650b16408ffc6b13b80246879499ce Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:40:23 +0900 Subject: [PATCH 28/44] =?UTF-8?q?feat(ErrorHandler):=20FolderException=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tiki/server/common/handler/ErrorHandler.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/tiki/server/common/handler/ErrorHandler.java b/src/main/java/com/tiki/server/common/handler/ErrorHandler.java index 5b7b29f1..a5285f53 100644 --- a/src/main/java/com/tiki/server/common/handler/ErrorHandler.java +++ b/src/main/java/com/tiki/server/common/handler/ErrorHandler.java @@ -3,6 +3,7 @@ import com.tiki.server.auth.exception.AuthException; import com.tiki.server.common.dto.ErrorCodeResponse; import com.tiki.server.emailverification.exception.EmailVerificationException; +import com.tiki.server.folder.exception.FolderException; import com.tiki.server.note.exception.NoteException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -85,6 +86,13 @@ public ResponseEntity MailException(EmailVerificationException exc return ResponseEntity.status(errorCode.getHttpStatus()).body(ErrorResponse.of(errorCode.getMessage())); } + @ExceptionHandler(FolderException.class) + public ResponseEntity folderException(FolderException exception) { + log.error(exception.getMessage()); + val errorCode = exception.getErrorCode(); + return ResponseEntity.status(errorCode.getHttpStatus()).body(ErrorResponse.of(errorCode.getMessage())); + } + @ExceptionHandler(AuthException.class) public ResponseEntity AuthException(AuthException exception) { log.error(exception.getMessage()); From 8e7e44cc30b474ad034aaad3fc9f8518ea669a16 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:40:50 +0900 Subject: [PATCH 29/44] =?UTF-8?q?chore(ErrorHandler):=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=EB=93=9C=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 대문자 시작 메소드 소문자로 수정 --- .../java/com/tiki/server/common/handler/ErrorHandler.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tiki/server/common/handler/ErrorHandler.java b/src/main/java/com/tiki/server/common/handler/ErrorHandler.java index a5285f53..d86ae5d7 100644 --- a/src/main/java/com/tiki/server/common/handler/ErrorHandler.java +++ b/src/main/java/com/tiki/server/common/handler/ErrorHandler.java @@ -80,7 +80,7 @@ public ResponseEntity externalException(ExternalException exceptio } @ExceptionHandler(EmailVerificationException.class) - public ResponseEntity MailException(EmailVerificationException exception) { + public ResponseEntity mailException(EmailVerificationException exception) { log.error(exception.getMessage()); val errorCode = exception.getErrorCode(); return ResponseEntity.status(errorCode.getHttpStatus()).body(ErrorResponse.of(errorCode.getMessage())); @@ -94,7 +94,7 @@ public ResponseEntity folderException(FolderException exception) { } @ExceptionHandler(AuthException.class) - public ResponseEntity AuthException(AuthException exception) { + public ResponseEntity authException(AuthException exception) { log.error(exception.getMessage()); val errorCode = exception.getErrorCode(); return ResponseEntity.status(errorCode.getHttpStatus()).body( @@ -109,7 +109,7 @@ public ResponseEntity httpMessageNotReadableException(HttpMessageN } @ExceptionHandler(Exception.class) - public ResponseEntity Exception(Exception exception) { + public ResponseEntity exception(Exception exception) { log.error(exception.getMessage()); val errorCode = UNCAUGHT_SERVER_EXCEPTION; return ResponseEntity.status(errorCode.getHttpStatus()).body(ErrorResponse.of(errorCode.getMessage())); From 6bab42d3e8aedff46f55ee644e2fccb847faf3e7 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:41:21 +0900 Subject: [PATCH 30/44] =?UTF-8?q?fix(FolderService):=20=EC=9E=90=EC=8B=9D?= =?UTF-8?q?=20=EC=A3=BC=EC=86=8C=EB=A5=BC=20=EB=B0=98=ED=99=98=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tiki/server/folder/service/FolderService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 71670913..942f1e98 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -41,7 +41,7 @@ public FolderCreateResponse create(final long memberId, final long teamId, final Long folderId, final FolderCreateRequest request) { memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Folder parentFolder = getFolder(teamId, folderId); - String path = parentFolder.getChildPath(); + String path = getFolderPath(teamId, folderId); validateFolderName(teamId, path, request); Folder folder = folderSaver.save(new Folder(request.name(), parentFolder, teamId)); return FolderCreateResponse.from(folder.getId()); @@ -62,7 +62,7 @@ private String getFolderPath(final long teamId, final Long folderId) { } Folder folder = folderFinder.findById(folderId); folder.validateTeamId(teamId); - return folder.getPath(); + return folder.getChildPath(); } private void validateFolderName(final long teamId, final String path, final FolderCreateRequest request) { From 45d23c32eb05395cbd895744b945475764225e95 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:43:43 +0900 Subject: [PATCH 31/44] =?UTF-8?q?feat(Constant):=20=EA=B5=AC=EB=B6=84?= =?UTF-8?q?=EC=9E=90=20=EC=83=81=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/folder/constant/Constant.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/tiki/server/folder/constant/Constant.java b/src/main/java/com/tiki/server/folder/constant/Constant.java index c6b2f0a9..e3f536e5 100644 --- a/src/main/java/com/tiki/server/folder/constant/Constant.java +++ b/src/main/java/com/tiki/server/folder/constant/Constant.java @@ -3,4 +3,5 @@ public class Constant { public static final String ROOT_PATH = ""; + public static final String SEPARATOR = "/"; } From c9c53db4a9a5263b1c00ef2786ec97f291c1416a Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:44:15 +0900 Subject: [PATCH 32/44] =?UTF-8?q?refactor(Folder):=20=EC=83=81=EC=88=98=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/folder/entity/Folder.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tiki/server/folder/entity/Folder.java b/src/main/java/com/tiki/server/folder/entity/Folder.java index c0c5b849..162bffd8 100644 --- a/src/main/java/com/tiki/server/folder/entity/Folder.java +++ b/src/main/java/com/tiki/server/folder/entity/Folder.java @@ -1,6 +1,8 @@ package com.tiki.server.folder.entity; import static com.tiki.server.document.message.ErrorCode.INVALID_AUTHORIZATION; +import static com.tiki.server.folder.constant.Constant.ROOT_PATH; +import static com.tiki.server.folder.constant.Constant.SEPARATOR; import static jakarta.persistence.GenerationType.IDENTITY; import com.tiki.server.common.entity.BaseTime; @@ -40,13 +42,13 @@ public void validateTeamId(final long teamId) { } public String getChildPath() { - return path + "/" + id; + return path + SEPARATOR + id; } private String generatePath(Folder parentFolder) { if (parentFolder == null) { - return ""; + return ROOT_PATH; } - return parentFolder.getPath() + "/" + parentFolder.getId(); + return parentFolder.getPath() + SEPARATOR + parentFolder.getId(); } } From 1f2c80fbc5a40d584f5168499240cd2cbae749a4 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:45:40 +0900 Subject: [PATCH 33/44] =?UTF-8?q?refactor(FolderService):=20getFolder,=20g?= =?UTF-8?q?etFolderPath=20=EC=A4=91=EB=B3=B5=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/folder/service/FolderService.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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 942f1e98..41ce2234 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -31,7 +31,8 @@ public class FolderService { public FoldersGetResponse get(final long memberId, final long teamId, final Long folderId) { memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); - String path = getFolderPath(teamId, folderId); + Folder folder = getFolder(teamId, folderId); + String path = getFolderPath(folder); List folders = folderFinder.findByTeamIdAndPath(teamId, path); return FoldersGetResponse.from(folders); } @@ -41,7 +42,7 @@ public FolderCreateResponse create(final long memberId, final long teamId, final Long folderId, final FolderCreateRequest request) { memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Folder parentFolder = getFolder(teamId, folderId); - String path = getFolderPath(teamId, folderId); + String path = getFolderPath(parentFolder); validateFolderName(teamId, path, request); Folder folder = folderSaver.save(new Folder(request.name(), parentFolder, teamId)); return FolderCreateResponse.from(folder.getId()); @@ -56,12 +57,10 @@ private Folder getFolder(final long teamId, final Long folderId) { return folder; } - private String getFolderPath(final long teamId, final Long folderId) { - if (folderId == null) { + private String getFolderPath(final Folder folder) { + if (folder == null) { return ROOT_PATH; } - Folder folder = folderFinder.findById(folderId); - folder.validateTeamId(teamId); return folder.getChildPath(); } From c1d186c2cfaaadd64ddeb37b559ed026f5c0ffbb Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:46:05 +0900 Subject: [PATCH 34/44] =?UTF-8?q?refactor(FolderService):=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit getFolderPath -> getChildFolderPath으로 수정 --- .../java/com/tiki/server/folder/service/FolderService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 41ce2234..d3ce716e 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -32,7 +32,7 @@ public FoldersGetResponse get(final long memberId, final long teamId, final Long folderId) { memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); Folder folder = getFolder(teamId, folderId); - String path = getFolderPath(folder); + String path = getChildFolderPath(folder); List folders = folderFinder.findByTeamIdAndPath(teamId, path); return FoldersGetResponse.from(folders); } @@ -42,7 +42,7 @@ public FolderCreateResponse create(final long memberId, final long teamId, final Long folderId, final FolderCreateRequest request) { memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Folder parentFolder = getFolder(teamId, folderId); - String path = getFolderPath(parentFolder); + String path = getChildFolderPath(parentFolder); validateFolderName(teamId, path, request); Folder folder = folderSaver.save(new Folder(request.name(), parentFolder, teamId)); return FolderCreateResponse.from(folder.getId()); @@ -57,7 +57,7 @@ private Folder getFolder(final long teamId, final Long folderId) { return folder; } - private String getFolderPath(final Folder folder) { + private String getChildFolderPath(final Folder folder) { if (folder == null) { return ROOT_PATH; } From 9423c57571e08ce18cda438c9be8ee3b851951aa Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:48:19 +0900 Subject: [PATCH 35/44] =?UTF-8?q?refactor(DocumentController):=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=9D=91=EB=8B=B5=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/document/controller/DocumentController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tiki/server/document/controller/DocumentController.java b/src/main/java/com/tiki/server/document/controller/DocumentController.java index 0be55e51..cc4f71be 100644 --- a/src/main/java/com/tiki/server/document/controller/DocumentController.java +++ b/src/main/java/com/tiki/server/document/controller/DocumentController.java @@ -57,16 +57,16 @@ public ResponseEntity deleteDocument( } @PostMapping("/teams/{teamId}/documents") - public ResponseEntity> createDocuments( + public ResponseEntity> createDocuments( Principal principal, @PathVariable long teamId, @RequestParam(required = false) Long folderId, @RequestBody DocumentsCreateRequest request ) { long memberId = Long.parseLong(principal.getName()); - DocumentsCreateResponse response = documentService.createDocuments(memberId, teamId, folderId, request); + documentService.createDocuments(memberId, teamId, folderId, request); return ResponseEntity.created(UriGenerator.getUri("teams/" + teamId + "/documents")) - .body(SuccessResponse.success(SUCCESS_CREATE_DOCUMENTS.getMessage(), response)); + .body(SuccessResponse.success(SUCCESS_CREATE_DOCUMENTS.getMessage())); } @GetMapping("/teams/{teamId}/documents") From a67e400a5203d0ebf035853a8438e09f254fefe8 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Tue, 19 Nov 2024 16:50:18 +0900 Subject: [PATCH 36/44] =?UTF-8?q?refactor(DocumentService):=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=9D=91=EB=8B=B5=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/document/service/DocumentService.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) 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 95d1b91d..cae6a76f 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -51,13 +51,12 @@ public void deleteDocument(long memberId, long teamId, long documentId) { } @Transactional - public DocumentsCreateResponse createDocuments(final long memberId, final long teamId, + public void createDocuments(final long memberId, final long teamId, final Long folderId, final DocumentsCreateRequest request) { memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); validateFolder(folderId, teamId); validateFileName(folderId, teamId, request); - List documentIds = saveDocuments(teamId, folderId, request); - return DocumentsCreateResponse.from(documentIds); + saveDocuments(teamId, folderId, request); } public DocumentsGetResponse get(final long memberId, final long teamId, final Long folderId) { @@ -92,15 +91,13 @@ private void checkFileNameIsDuplicated(final String fileName, final DocumentsCre } } - private List saveDocuments(final long teamId, final Long folderId, final DocumentsCreateRequest request) { - return request.documents().stream() - .map(document -> saveDocument(teamId, folderId, document).getId()) - .toList(); + private void saveDocuments(final long teamId, final Long folderId, final DocumentsCreateRequest request) { + request.documents().forEach(document -> saveDocument(teamId, folderId, document)); } - private Document saveDocument(long teamId, Long folderId, DocumentCreateRequest request) { + private void saveDocument(long teamId, Long folderId, DocumentCreateRequest request) { Document document = Document.of( request.fileName(), request.fileUrl(), request.capacity(), teamId, folderId); - return documentSaver.save(document); + documentSaver.save(document); } } From f2b413ee4d824dcc575bf5c3367d3fe94d2ed904 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Wed, 20 Nov 2024 14:07:24 +0900 Subject: [PATCH 37/44] =?UTF-8?q?chore(FolderService):=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/folder/service/FolderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d3ce716e..21f27a77 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -30,7 +30,7 @@ public class FolderService { public FoldersGetResponse get(final long memberId, final long teamId, final Long folderId) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Folder folder = getFolder(teamId, folderId); String path = getChildFolderPath(folder); List folders = folderFinder.findByTeamIdAndPath(teamId, path); From 3b0331890ad05c961c9df6113655256e148b351a Mon Sep 17 00:00:00 2001 From: Chan531 Date: Wed, 20 Nov 2024 14:07:39 +0900 Subject: [PATCH 38/44] =?UTF-8?q?chore(DocumentService):=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tiki/server/document/service/DocumentService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 cae6a76f..23261d16 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -60,7 +60,7 @@ public void createDocuments(final long memberId, final long teamId, } public DocumentsGetResponse get(final long memberId, final long teamId, final Long folderId) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); List documents = documentFinder.findByTeamIdAndFolderId(teamId, folderId); return DocumentsGetResponse.from(documents); } From 9a0cf94150bb7ec9b29e8a730b803924154ebcdf Mon Sep 17 00:00:00 2001 From: Chan531 Date: Wed, 20 Nov 2024 14:09:33 +0900 Subject: [PATCH 39/44] =?UTF-8?q?chore(DocumentService):=20=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=20final=20=ED=82=A4=EC=9B=8C?= =?UTF-8?q?=EB=93=9C=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/document/service/DocumentService.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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 23261d16..0f2271ab 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -13,7 +13,6 @@ import com.tiki.server.document.adapter.DocumentSaver; import com.tiki.server.document.dto.request.DocumentCreateRequest; import com.tiki.server.document.dto.request.DocumentsCreateRequest; -import com.tiki.server.document.dto.response.DocumentsCreateResponse; import com.tiki.server.document.dto.response.DocumentsGetResponse; import com.tiki.server.document.entity.Document; import com.tiki.server.document.exception.DocumentException; @@ -35,7 +34,7 @@ public class DocumentService { private final FolderFinder folderFinder; private final MemberTeamManagerFinder memberTeamManagerFinder; - public DocumentsGetResponse getAllDocuments(long memberId, long teamId, String type) { + public DocumentsGetResponse getAllDocuments(final long memberId, final long teamId, final String type) { MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Position accessiblePosition = Position.getAccessiblePosition(type); memberTeamManager.checkMemberAccessible(accessiblePosition); @@ -43,7 +42,7 @@ public DocumentsGetResponse getAllDocuments(long memberId, long teamId, String t } @Transactional - public void deleteDocument(long memberId, long teamId, long documentId) { + public void deleteDocument(final long memberId, final long teamId, final long documentId) { MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Document document = documentFinder.findByIdWithTimeBlock(documentId); memberTeamManager.checkMemberAccessible(document.getTimeBlock().getAccessiblePosition()); @@ -65,12 +64,12 @@ public DocumentsGetResponse get(final long memberId, final long teamId, final Lo return DocumentsGetResponse.from(documents); } - private DocumentsGetResponse getAllDocumentsByType(long teamId, Position accessiblePosition) { + private DocumentsGetResponse getAllDocumentsByType(final long teamId, final Position accessiblePosition) { List documents = documentFinder.findAllByTeamIdAndAccessiblePosition(teamId, accessiblePosition); return DocumentsGetResponse.from(documents); } - private void validateFolder(Long folderId, long teamId) { + private void validateFolder(final Long folderId, final long teamId) { if (folderId == null) { return; } @@ -95,7 +94,7 @@ private void saveDocuments(final long teamId, final Long folderId, final Documen request.documents().forEach(document -> saveDocument(teamId, folderId, document)); } - private void saveDocument(long teamId, Long folderId, DocumentCreateRequest request) { + private void saveDocument(final long teamId, final Long folderId, final DocumentCreateRequest request) { Document document = Document.of( request.fileName(), request.fileUrl(), request.capacity(), teamId, folderId); documentSaver.save(document); From 256e0d9d4c1596ef2dbe8c753be2d18cb5f538cc Mon Sep 17 00:00:00 2001 From: Chan531 Date: Wed, 20 Nov 2024 14:10:12 +0900 Subject: [PATCH 40/44] =?UTF-8?q?chore(Folder):=20=ED=8C=8C=EB=9D=BC?= =?UTF-8?q?=EB=AF=B8=ED=84=B0=20final=20=ED=82=A4=EC=9B=8C=EB=93=9C=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/folder/entity/Folder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/tiki/server/folder/entity/Folder.java b/src/main/java/com/tiki/server/folder/entity/Folder.java index 162bffd8..b7f35a1a 100644 --- a/src/main/java/com/tiki/server/folder/entity/Folder.java +++ b/src/main/java/com/tiki/server/folder/entity/Folder.java @@ -29,7 +29,7 @@ public class Folder extends BaseTime { private long teamId; - public Folder(String name, Folder parentFolder, long teamId) { + public Folder(final String name, final Folder parentFolder, final long teamId) { this.name = name; this.path = generatePath(parentFolder); this.teamId = teamId; @@ -45,7 +45,7 @@ public String getChildPath() { return path + SEPARATOR + id; } - private String generatePath(Folder parentFolder) { + private String generatePath(final Folder parentFolder) { if (parentFolder == null) { return ROOT_PATH; } From 357b0db4d9fec8bd7fcbe91cad711b4e822addf8 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Wed, 20 Nov 2024 14:23:54 +0900 Subject: [PATCH 41/44] =?UTF-8?q?chore(DocumentController):=20=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=20final=20=ED=82=A4=EC=9B=8C?= =?UTF-8?q?=EB=93=9C=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DocumentController.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/tiki/server/document/controller/DocumentController.java b/src/main/java/com/tiki/server/document/controller/DocumentController.java index cc4f71be..20e0a09c 100644 --- a/src/main/java/com/tiki/server/document/controller/DocumentController.java +++ b/src/main/java/com/tiki/server/document/controller/DocumentController.java @@ -35,9 +35,9 @@ public class DocumentController implements DocumentControllerDocs { @Override @GetMapping("/documents/team/{teamId}/timeline") public ResponseEntity> getAllDocuments( - Principal principal, - @PathVariable long teamId, - @RequestParam String type + final Principal principal, + @PathVariable final long teamId, + @RequestParam final String type ) { long memberId = Long.parseLong(principal.getName()); DocumentsGetResponse response = documentService.getAllDocuments(memberId, teamId, type); @@ -47,9 +47,9 @@ public ResponseEntity> getAllDocuments( @Override @DeleteMapping("/documents/team/{teamId}/document/{documentId}") public ResponseEntity deleteDocument( - Principal principal, - @PathVariable long teamId, - @PathVariable long documentId + final Principal principal, + @PathVariable final long teamId, + @PathVariable final long documentId ) { long memberId = Long.parseLong(principal.getName()); documentService.deleteDocument(memberId, teamId, documentId); @@ -58,10 +58,10 @@ public ResponseEntity deleteDocument( @PostMapping("/teams/{teamId}/documents") public ResponseEntity> createDocuments( - Principal principal, - @PathVariable long teamId, - @RequestParam(required = false) Long folderId, - @RequestBody DocumentsCreateRequest request + final Principal principal, + @PathVariable final long teamId, + @RequestParam(required = false) final Long folderId, + @RequestBody final DocumentsCreateRequest request ) { long memberId = Long.parseLong(principal.getName()); documentService.createDocuments(memberId, teamId, folderId, request); @@ -72,8 +72,8 @@ public ResponseEntity> createDocuments( @GetMapping("/teams/{teamId}/documents") public ResponseEntity> getDocuments( final Principal principal, - @PathVariable long teamId, - @RequestParam(required = false) Long folderId + @PathVariable final long teamId, + @RequestParam(required = false) final Long folderId ) { long memberId = Long.parseLong(principal.getName()); DocumentsGetResponse response = documentService.get(memberId, teamId, folderId); From 249d1889b02b917cf906017b38945d04945f493f Mon Sep 17 00:00:00 2001 From: Chan531 Date: Wed, 20 Nov 2024 15:19:06 +0900 Subject: [PATCH 42/44] =?UTF-8?q?chore(FolderController):=20=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=20final=20=ED=82=A4=EC=9B=8C?= =?UTF-8?q?=EB=93=9C=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/folder/controller/FolderController.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/tiki/server/folder/controller/FolderController.java b/src/main/java/com/tiki/server/folder/controller/FolderController.java index ca827830..9c8602ff 100644 --- a/src/main/java/com/tiki/server/folder/controller/FolderController.java +++ b/src/main/java/com/tiki/server/folder/controller/FolderController.java @@ -35,8 +35,8 @@ public class FolderController { @GetMapping("/teams/{teamId}/folders") public ResponseEntity> getFolders( final Principal principal, - @PathVariable long teamId, - @RequestParam(required = false) Long folderId + @PathVariable final long teamId, + @RequestParam(required = false) final Long folderId ) { long memberId = Long.parseLong(principal.getName()); FoldersGetResponse response = folderService.get(memberId, teamId, folderId); @@ -46,9 +46,9 @@ public ResponseEntity> getFolders( @PostMapping("/teams/{teamId}/folders") public ResponseEntity> createFolder( Principal principal, - @PathVariable long teamId, - @RequestParam(required = false) Long folderId, - @RequestBody FolderCreateRequest request + @PathVariable final long teamId, + @RequestParam(required = false) final Long folderId, + @RequestBody final FolderCreateRequest request ) { long memberId = Long.parseLong(principal.getName()); FolderCreateResponse response = folderService.create(memberId, teamId, folderId, request); From a0f350ac512ac81d669f2522373e66b0990f845e Mon Sep 17 00:00:00 2001 From: Chan531 Date: Wed, 20 Nov 2024 15:19:46 +0900 Subject: [PATCH 43/44] =?UTF-8?q?chore(FolderFinder):=20=ED=8C=8C=EB=9D=BC?= =?UTF-8?q?=EB=AF=B8=ED=84=B0=20final=20=ED=82=A4=EC=9B=8C=EB=93=9C=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/folder/adapter/FolderFinder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/tiki/server/folder/adapter/FolderFinder.java b/src/main/java/com/tiki/server/folder/adapter/FolderFinder.java index d74576ae..698cd55b 100644 --- a/src/main/java/com/tiki/server/folder/adapter/FolderFinder.java +++ b/src/main/java/com/tiki/server/folder/adapter/FolderFinder.java @@ -18,7 +18,7 @@ public class FolderFinder { private final FolderRepository folderRepository; - public Folder findById(long id) { + public Folder findById(final long id) { return folderRepository.findById(id) .orElseThrow(() -> new FolderException(INVALID_FOLDER)); } From d6a2eb8008facedb53c6390572ac71b069b1e1a1 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Wed, 20 Nov 2024 15:20:09 +0900 Subject: [PATCH 44/44] =?UTF-8?q?chore(FolderSaver):=20=ED=8C=8C=EB=A6=AC?= =?UTF-8?q?=EB=AF=B8=ED=84=B0=20final=20=ED=82=A4=EC=9B=8C=EB=93=9C=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/folder/adapter/FolderSaver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/tiki/server/folder/adapter/FolderSaver.java b/src/main/java/com/tiki/server/folder/adapter/FolderSaver.java index c00db2b5..f2a6b28b 100644 --- a/src/main/java/com/tiki/server/folder/adapter/FolderSaver.java +++ b/src/main/java/com/tiki/server/folder/adapter/FolderSaver.java @@ -12,7 +12,7 @@ public class FolderSaver { private final FolderRepository folderRepository; - public Folder save(Folder folder) { + public Folder save(final Folder folder) { return folderRepository.save(folder); } }