From 5d7b3194817d2326dd6a293ac195f6afde726bc9 Mon Sep 17 00:00:00 2001 From: minahYu Date: Sat, 4 Jan 2025 16:27:16 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=EB=B6=81=EB=A7=88=ED=81=AC=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20repository=EC=97=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/ServerProfileCustomRepository.kt | 2 ++ .../ServerProfileCustomRepositoryImpl.kt | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/server/src/main/kotlin/kpring/server/repository/ServerProfileCustomRepository.kt b/server/src/main/kotlin/kpring/server/repository/ServerProfileCustomRepository.kt index 76d477ed..6d6201de 100644 --- a/server/src/main/kotlin/kpring/server/repository/ServerProfileCustomRepository.kt +++ b/server/src/main/kotlin/kpring/server/repository/ServerProfileCustomRepository.kt @@ -19,4 +19,6 @@ interface ServerProfileCustomRepository { fun getOwnedProfiles(userId: String): List fun getAll(serverId: String): List + + fun updateBookmarkStatus(serverProfile: ServerProfile) } diff --git a/server/src/main/kotlin/kpring/server/repository/ServerProfileCustomRepositoryImpl.kt b/server/src/main/kotlin/kpring/server/repository/ServerProfileCustomRepositoryImpl.kt index 369a464a..3338751b 100644 --- a/server/src/main/kotlin/kpring/server/repository/ServerProfileCustomRepositoryImpl.kt +++ b/server/src/main/kotlin/kpring/server/repository/ServerProfileCustomRepositoryImpl.kt @@ -171,6 +171,21 @@ class ServerProfileCustomRepositoryImpl( } } + override fun updateBookmarkStatus(serverProfile: ServerProfile) { + val newBookmarkStatus = !serverProfile.bookmarked + val result = + template.updateFirst( + Query.query( + Criteria.where("_id").`is`(serverProfile.id), + ), + Update().set("bookmarked", newBookmarkStatus), + ServerProfileEntity::class.java, + ) + println("@@@Check : ${result.matchedCount} modified ${result.modifiedCount}") + + serverProfileRepository.save(ServerProfileEntity(serverProfile)) + } + /** * serverIds 목록 중에서 condition에 포함되는 serverId만 검색한다. * 만약 condition이 없는 경우에는 serverIds 목록 전체를 검색한다. From 84ce708a4f65e37d49eeac10c945cae4c97bc1d4 Mon Sep 17 00:00:00 2001 From: minahYu Date: Sat, 4 Jan 2025 16:27:53 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=EC=84=9C=EB=B2=84=20=EB=B6=81?= =?UTF-8?q?=EB=A7=88=ED=81=AC=20=EC=83=81=ED=83=9C=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20service=EB=8B=A8?= =?UTF-8?q?=EC=97=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/kpring/server/domain/ServerProfile.kt | 6 +++++- .../kotlin/kpring/server/service/ServerService.kt | 5 +++++ .../kpring/server/service/ServerServiceImpl.kt | 12 ++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/server/src/main/kotlin/kpring/server/domain/ServerProfile.kt b/server/src/main/kotlin/kpring/server/domain/ServerProfile.kt index ce11ebf1..ec3f8c13 100644 --- a/server/src/main/kotlin/kpring/server/domain/ServerProfile.kt +++ b/server/src/main/kotlin/kpring/server/domain/ServerProfile.kt @@ -7,7 +7,7 @@ class ServerProfile( val imagePath: String, val server: Server, var role: ServerRole = ServerRole.MEMBER, - val bookmarked: Boolean = false, + var bookmarked: Boolean = false, ) { /** * @param authority 확인할 권한 @@ -30,4 +30,8 @@ class ServerProfile( serverProfile.role = ServerRole.OWNER } } + + fun updateBookmarkStatus(serverProfile: ServerProfile) { + serverProfile.bookmarked = !serverProfile.bookmarked + } } diff --git a/server/src/main/kotlin/kpring/server/service/ServerService.kt b/server/src/main/kotlin/kpring/server/service/ServerService.kt index 945e895f..64de86ab 100644 --- a/server/src/main/kotlin/kpring/server/service/ServerService.kt +++ b/server/src/main/kotlin/kpring/server/service/ServerService.kt @@ -51,4 +51,9 @@ interface ServerService { fun delete(serverId: String) fun get(id: String): Server + + fun updateServerBookmarkStatus( + serverId: String, + userId: String, + ): Boolean } diff --git a/server/src/main/kotlin/kpring/server/service/ServerServiceImpl.kt b/server/src/main/kotlin/kpring/server/service/ServerServiceImpl.kt index f3c5dcaa..d1115019 100644 --- a/server/src/main/kotlin/kpring/server/service/ServerServiceImpl.kt +++ b/server/src/main/kotlin/kpring/server/service/ServerServiceImpl.kt @@ -183,4 +183,16 @@ class ServerServiceImpl( return serverEntity.toDomain() } + + override fun updateServerBookmarkStatus( + serverId: String, + userId: String, + ): Boolean { + val serverProfile = serverProfileCustomRepository.get(serverId, userId) + + serverProfile.updateBookmarkStatus(serverProfile) + serverProfileCustomRepository.updateBookmarkStatus(serverProfile) + + return serverProfile.bookmarked + } } From 0e2bdf6257968b90653706045237024bc7b6bebe Mon Sep 17 00:00:00 2001 From: minahYu Date: Sat, 4 Jan 2025 16:28:10 +0900 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=EC=84=9C=EB=B2=84=20=EB=B6=81?= =?UTF-8?q?=EB=A7=88=ED=81=AC=20=EC=83=81=ED=83=9C=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20controller=EC=97=90?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/controller/RestApiServerController.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/server/src/main/kotlin/kpring/server/controller/RestApiServerController.kt b/server/src/main/kotlin/kpring/server/controller/RestApiServerController.kt index 226530f1..623228bf 100644 --- a/server/src/main/kotlin/kpring/server/controller/RestApiServerController.kt +++ b/server/src/main/kotlin/kpring/server/controller/RestApiServerController.kt @@ -120,4 +120,14 @@ class RestApiServerController( serverService.updateServerHost(serverId, userInfo.userId, otherUser) return ResponseEntity.ok().build() } + + @PatchMapping("/{serverId}/bookmark") + fun updateServerBookmarkStatus( + @PathVariable serverId: String, + @RequestHeader("Authorization") token: String, + ): ResponseEntity { + val userInfo = authClient.getTokenInfo(token).data!! + val result = serverService.updateServerBookmarkStatus(serverId, userInfo.userId) + return ResponseEntity.ok().body(ApiResponse(data = result)) + } }