From 6754540257b06c1530a95d74f605e21548174e6b Mon Sep 17 00:00:00 2001 From: Chan531 Date: Thu, 20 Mar 2025 09:50:30 +0900 Subject: [PATCH 1/7] =?UTF-8?q?[CHORE]=20=EB=A9=94=EC=86=8C=EB=93=9C?= =?UTF-8?q?=EB=AA=85=20=EC=BB=A8=EB=B2=A4=EC=85=98=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tiki/server/auth/dto/response/SignInGetResponse.java | 2 +- src/main/java/com/tiki/server/auth/service/AuthService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/tiki/server/auth/dto/response/SignInGetResponse.java b/src/main/java/com/tiki/server/auth/dto/response/SignInGetResponse.java index 7c47539b..b19b7d4a 100644 --- a/src/main/java/com/tiki/server/auth/dto/response/SignInGetResponse.java +++ b/src/main/java/com/tiki/server/auth/dto/response/SignInGetResponse.java @@ -11,7 +11,7 @@ public record SignInGetResponse( @NotNull String refreshToken ) { - public static SignInGetResponse from(final String accessToken, final String refreshToken) { + public static SignInGetResponse of(final String accessToken, final String refreshToken) { return SignInGetResponse.builder().accessToken(accessToken).refreshToken(refreshToken).build(); } } diff --git a/src/main/java/com/tiki/server/auth/service/AuthService.java b/src/main/java/com/tiki/server/auth/service/AuthService.java index e669d88f..40a82a77 100644 --- a/src/main/java/com/tiki/server/auth/service/AuthService.java +++ b/src/main/java/com/tiki/server/auth/service/AuthService.java @@ -50,7 +50,7 @@ public SignInGetResponse signIn(final SignInRequest request) { String accessToken = jwtGenerator.generateAccessToken(authentication); String refreshToken = jwtGenerator.generateRefreshToken(authentication); tokenSaver.save(Token.of(member.getId(), refreshToken)); - return SignInGetResponse.from(accessToken, refreshToken); + return SignInGetResponse.of(accessToken, refreshToken); } public ReissueGetResponse reissueToken(final HttpServletRequest request) { From 30da4d6c8953f93f3701b92e028d863b06063c4e Mon Sep 17 00:00:00 2001 From: Chan531 Date: Sat, 22 Mar 2025 20:25:42 +0900 Subject: [PATCH 2/7] =?UTF-8?q?[INIT]=20=ED=9C=B4=EC=A7=80=ED=86=B5=20?= =?UTF-8?q?=EC=8A=A4=EC=BC=80=EC=A5=B4=EB=9F=AC=20=EC=B4=88=EA=B8=B0=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduler/DeletedDocumentTrashScheduler.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/com/tiki/server/document/scheduler/DeletedDocumentTrashScheduler.java diff --git a/src/main/java/com/tiki/server/document/scheduler/DeletedDocumentTrashScheduler.java b/src/main/java/com/tiki/server/document/scheduler/DeletedDocumentTrashScheduler.java new file mode 100644 index 00000000..757f1bc6 --- /dev/null +++ b/src/main/java/com/tiki/server/document/scheduler/DeletedDocumentTrashScheduler.java @@ -0,0 +1,16 @@ +package com.tiki.server.document.scheduler; + +import org.springframework.stereotype.Component; + +import com.tiki.server.document.adapter.DeletedDocumentAdapter; + +import lombok.RequiredArgsConstructor; + +@Component +@RequiredArgsConstructor +public class DeletedDocumentTrashScheduler { + + private final DeletedDocumentAdapter deletedDocumentAdapter; + + +} From 50451dd795dbc7fefd7293a3415d74c47506f587 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Sat, 22 Mar 2025 20:39:39 +0900 Subject: [PATCH 3/7] =?UTF-8?q?[FEAT]=20=ED=9C=B4=EC=A7=80=ED=86=B5=20?= =?UTF-8?q?=EB=A7=8C=EB=A3=8C=20=EA=B8=B0=EA=B0=84=20=EC=83=81=EC=88=98=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 --- .../tiki/server/document/constants/DocumentConstants.java | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/main/java/com/tiki/server/document/constants/DocumentConstants.java diff --git a/src/main/java/com/tiki/server/document/constants/DocumentConstants.java b/src/main/java/com/tiki/server/document/constants/DocumentConstants.java new file mode 100644 index 00000000..2894924a --- /dev/null +++ b/src/main/java/com/tiki/server/document/constants/DocumentConstants.java @@ -0,0 +1,6 @@ +package com.tiki.server.document.constants; + +public class DocumentConstants { + + public static final int TRASH_RETENTION_DAYS = 30; +} From 0cb48c2000effb0e76511eccc66144aa359cb87f Mon Sep 17 00:00:00 2001 From: Chan531 Date: Sat, 22 Mar 2025 20:39:56 +0900 Subject: [PATCH 4/7] =?UTF-8?q?[FEAT]=20=ED=8A=B9=EC=A0=95=20=EA=B8=B0?= =?UTF-8?q?=EA=B0=84=20=EC=9D=B4=EC=A0=84=EC=9D=98=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../document/repository/DeletedDocumentRepository.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/tiki/server/document/repository/DeletedDocumentRepository.java b/src/main/java/com/tiki/server/document/repository/DeletedDocumentRepository.java index e5ec516e..8aa1492e 100644 --- a/src/main/java/com/tiki/server/document/repository/DeletedDocumentRepository.java +++ b/src/main/java/com/tiki/server/document/repository/DeletedDocumentRepository.java @@ -1,9 +1,11 @@ package com.tiki.server.document.repository; +import java.time.LocalDate; import java.util.List; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import com.tiki.server.document.entity.DeletedDocument; @@ -14,4 +16,7 @@ public interface DeletedDocumentRepository extends JpaRepository findAllByTeamId(final long teamId); void deleteAllByTeamId(final long teamId); + + @Query("SELECT d FROM DeletedDocument d WHERE d.createdAt < :date") + List findAllByDate(final LocalDate date); } From bf429c0222768d13a8e919d53c1185f31fd3c061 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Sat, 22 Mar 2025 20:40:18 +0900 Subject: [PATCH 5/7] =?UTF-8?q?[FEAT]=20=ED=8A=B9=EC=A0=95=20=EA=B8=B0?= =?UTF-8?q?=EA=B0=84=20=EC=9D=B4=EC=A0=84=EC=9D=98=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/document/adapter/DeletedDocumentAdapter.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/tiki/server/document/adapter/DeletedDocumentAdapter.java b/src/main/java/com/tiki/server/document/adapter/DeletedDocumentAdapter.java index 334ada86..791d25a1 100644 --- a/src/main/java/com/tiki/server/document/adapter/DeletedDocumentAdapter.java +++ b/src/main/java/com/tiki/server/document/adapter/DeletedDocumentAdapter.java @@ -2,6 +2,7 @@ import static com.tiki.server.document.message.ErrorCode.INVALID_DOCUMENT; +import java.time.LocalDate; import java.util.List; import com.tiki.server.common.support.RepositoryAdapter; @@ -40,6 +41,10 @@ public void deleteAllByTeamId(final long teamId) { deletedDocumentRepository.deleteAllByTeamId(teamId); } + public List getExpiredDeletedDocuments(final LocalDate date) { + return deletedDocumentRepository.findAllByDate(date); + } + private DeletedDocument create(final Document document) { return DeletedDocument.of(document); } From 869f921d789bde0d96e98381bdf3a42d22765d6a Mon Sep 17 00:00:00 2001 From: Chan531 Date: Sat, 22 Mar 2025 20:40:39 +0900 Subject: [PATCH 6/7] =?UTF-8?q?[FEAT]=20=ED=9C=B4=EC=A7=80=ED=86=B5=20?= =?UTF-8?q?=EB=A7=8C=EB=A3=8C=20=EA=B8=B0=EA=B0=84=20=EC=A7=80=EB=82=9C=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=82=AD=EC=A0=9C=20=EC=8A=A4=EC=BC=80?= =?UTF-8?q?=EC=A5=B4=EB=9F=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DeletedDocumentTrashScheduler.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/tiki/server/document/scheduler/DeletedDocumentTrashScheduler.java b/src/main/java/com/tiki/server/document/scheduler/DeletedDocumentTrashScheduler.java index 757f1bc6..62a8cb24 100644 --- a/src/main/java/com/tiki/server/document/scheduler/DeletedDocumentTrashScheduler.java +++ b/src/main/java/com/tiki/server/document/scheduler/DeletedDocumentTrashScheduler.java @@ -1,8 +1,16 @@ package com.tiki.server.document.scheduler; +import static com.tiki.server.document.constants.DocumentConstants.TRASH_RETENTION_DAYS; + +import java.time.LocalDate; +import java.util.List; + +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import com.tiki.server.document.adapter.DeletedDocumentAdapter; +import com.tiki.server.document.entity.DeletedDocument; +import com.tiki.server.external.util.AwsHandler; import lombok.RequiredArgsConstructor; @@ -11,6 +19,13 @@ public class DeletedDocumentTrashScheduler { private final DeletedDocumentAdapter deletedDocumentAdapter; + private final AwsHandler awsHandler; - + @Scheduled(cron = "0 10 0 * * ?") + public void clearDeletedDocuments() { + LocalDate targetDate = LocalDate.now().minusDays(TRASH_RETENTION_DAYS); + List documents = deletedDocumentAdapter.getExpiredDeletedDocuments(targetDate); + documents.forEach(document -> awsHandler.deleteFile(document.getFileKey())); + deletedDocumentAdapter.deleteAll(documents); + } } From 8cf662217364c04712c4777aeac221641c29bc94 Mon Sep 17 00:00:00 2001 From: Chan531 Date: Sat, 22 Mar 2025 20:42:02 +0900 Subject: [PATCH 7/7] =?UTF-8?q?[FEAT]=20=ED=8C=80=20=EC=B4=88=EB=8C=80=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EC=8A=A4=EC=BC=80=EC=A5=B4=EB=9F=AC=20?= =?UTF-8?q?=EB=B9=88=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../email/teaminvitation/scheduler/TeamInvitationScheduler.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/tiki/server/email/teaminvitation/scheduler/TeamInvitationScheduler.java b/src/main/java/com/tiki/server/email/teaminvitation/scheduler/TeamInvitationScheduler.java index 18bce060..7f1f4ef1 100644 --- a/src/main/java/com/tiki/server/email/teaminvitation/scheduler/TeamInvitationScheduler.java +++ b/src/main/java/com/tiki/server/email/teaminvitation/scheduler/TeamInvitationScheduler.java @@ -5,10 +5,12 @@ import com.tiki.server.email.teaminvitation.entity.TeamInvitation; import lombok.RequiredArgsConstructor; import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; import java.time.LocalDate; import java.util.List; +@Component @RequiredArgsConstructor public class TeamInvitationScheduler {