From b9507bc5693f55249df8604f6fc4d344b85c917a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A3=BC=EC=9B=90?= Date: Fri, 1 Aug 2025 16:45:13 +0900 Subject: [PATCH 1/5] =?UTF-8?q?feat=20(=20#25=20)=20:=20InternalAdminRespo?= =?UTF-8?q?nse=20=EA=B0=9D=EC=B2=B4=EB=A5=BC=20gRPC=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EC=9E=90=20=EC=A0=95=EB=B3=B4=20=EC=9D=91=EB=8B=B5=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=A7=A4=ED=8D=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../grpc/server/mapper/UserGrpcMapper.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/mapper/UserGrpcMapper.kt b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/mapper/UserGrpcMapper.kt index fbb0bce..8465bec 100644 --- a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/mapper/UserGrpcMapper.kt +++ b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/mapper/UserGrpcMapper.kt @@ -1,6 +1,8 @@ package hs.kr.entrydsm.user.infrastructure.grpc.server.mapper +import hs.kr.entrydsm.casper.admin.proto.AdminServiceProto import hs.kr.entrydsm.casper.user.proto.UserServiceProto +import hs.kr.entrydsm.user.infrastructure.grpc.server.dto.InternalAdminResponse import hs.kr.entrydsm.user.infrastructure.grpc.server.dto.InternalUserResponse import hs.kr.entrydsm.user.domain.user.adapter.out.domain.UserRole import org.springframework.stereotype.Component @@ -27,6 +29,18 @@ class UserGrpcMapper { .setRole(toProtoUserRole(userResponse.role)) .build() } + + /** + * InternalAdminResponse 객체를 gRPC 사용자 정보 응답으로 변환합니다. + * + * @param adminResponse 변환할 사용자 응답 DTO + * @return gRPC 사용자 정보 응답 + */ + fun toGetAdminIdResponse(adminResponse: InternalAdminResponse): AdminServiceProto.GetAdminIdResponse { + return AdminServiceProto.GetAdminIdResponse.newBuilder() + .setAdminId(adminResponse.id.toString()) + .build() + } /** * 도메인 사용자 역할을 gRPC 프로토콜 사용자 역할로 변환합니다. From da8792a853cf650f2c8ebd685457f2d9666bc9d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A3=BC=EC=9B=90?= Date: Fri, 1 Aug 2025 16:46:15 +0900 Subject: [PATCH 2/5] =?UTF-8?q?chore=20(=20#25=20)=20:=20InternalAdminResp?= =?UTF-8?q?onse=20=ED=8C=A8=ED=82=A4=EC=A7=80=20=EA=B5=AC=EC=A1=B0=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 --- .../admin/application/port/in/QueryAdminByUUIDUseCase.kt | 2 +- .../admin/application/service/QueryAdminByUUIDService.kt | 2 +- .../grpc/server/dto}/InternalAdminResponse.kt | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename casper-user/src/main/kotlin/hs/kr/entrydsm/user/{domain/admin/adapter/in/web/dto/response => infrastructure/grpc/server/dto}/InternalAdminResponse.kt (70%) diff --git a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/port/in/QueryAdminByUUIDUseCase.kt b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/port/in/QueryAdminByUUIDUseCase.kt index 5d34082..7e0d611 100644 --- a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/port/in/QueryAdminByUUIDUseCase.kt +++ b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/port/in/QueryAdminByUUIDUseCase.kt @@ -1,6 +1,6 @@ package hs.kr.entrydsm.user.domain.admin.application.port.`in` -import hs.kr.entrydsm.user.domain.admin.adapter.`in`.web.dto.response.InternalAdminResponse +import hs.kr.entrydsm.user.infrastructure.grpc.server.dto.InternalAdminResponse import java.util.UUID /** diff --git a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/service/QueryAdminByUUIDService.kt b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/service/QueryAdminByUUIDService.kt index 1ddf192..dfd7c5c 100644 --- a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/service/QueryAdminByUUIDService.kt +++ b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/service/QueryAdminByUUIDService.kt @@ -1,6 +1,6 @@ package hs.kr.entrydsm.user.domain.admin.application.service -import hs.kr.entrydsm.user.domain.admin.adapter.`in`.web.dto.response.InternalAdminResponse +import hs.kr.entrydsm.user.infrastructure.grpc.server.dto.InternalAdminResponse import hs.kr.entrydsm.user.domain.admin.application.port.`in`.QueryAdminByUUIDUseCase import hs.kr.entrydsm.user.domain.admin.application.port.out.QueryAdminPort import hs.kr.entrydsm.user.domain.admin.exception.AdminNotFoundException diff --git a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/adapter/in/web/dto/response/InternalAdminResponse.kt b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/dto/InternalAdminResponse.kt similarity index 70% rename from casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/adapter/in/web/dto/response/InternalAdminResponse.kt rename to casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/dto/InternalAdminResponse.kt index 38d00e4..d25d7a1 100644 --- a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/adapter/in/web/dto/response/InternalAdminResponse.kt +++ b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/dto/InternalAdminResponse.kt @@ -1,4 +1,4 @@ -package hs.kr.entrydsm.user.domain.admin.adapter.`in`.web.dto.response +package hs.kr.entrydsm.user.infrastructure.grpc.server.dto import java.util.UUID @@ -7,4 +7,4 @@ import java.util.UUID */ data class InternalAdminResponse( val id: UUID, -) +) \ No newline at end of file From e74bb8a88d9e578081f205d29d4b67d41adb9149 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A3=BC=EC=9B=90?= Date: Fri, 1 Aug 2025 16:47:17 +0900 Subject: [PATCH 3/5] =?UTF-8?q?feat=20(=20#25=20)=20:=20admin=20proto=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- casper-user/src/main/proto/admin.proto | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 casper-user/src/main/proto/admin.proto diff --git a/casper-user/src/main/proto/admin.proto b/casper-user/src/main/proto/admin.proto new file mode 100644 index 0000000..3a5be72 --- /dev/null +++ b/casper-user/src/main/proto/admin.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; + +package casper.user; + +option java_package = "hs.kr.entrydsm.casper.admin.proto"; +option java_outer_classname = "AdminServiceProto"; + +service AdminService { + rpc GetAdminByUUID(GetAdminIdRequest) returns (GetAdminIdResponse); +} + +message GetAdminIdRequest { + string admin_id =1; +} + +message GetAdminIdResponse{ + string admin_id = 1; +} From 17197dd7dde7de06066ff7e0ec62c739cedc21ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A3=BC=EC=9B=90?= Date: Fri, 1 Aug 2025 16:47:48 +0900 Subject: [PATCH 4/5] =?UTF-8?q?feat=20(=20#25=20)=20:=20admin=20gRPC=20?= =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../grpc/server/AdminGrpcService.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/AdminGrpcService.kt diff --git a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/AdminGrpcService.kt b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/AdminGrpcService.kt new file mode 100644 index 0000000..05b5e85 --- /dev/null +++ b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/AdminGrpcService.kt @@ -0,0 +1,21 @@ +package hs.kr.entrydsm.user.infrastructure.grpc.server + +import hs.kr.entrydsm.casper.admin.proto.AdminServiceGrpcKt +import hs.kr.entrydsm.casper.admin.proto.AdminServiceProto +import hs.kr.entrydsm.user.domain.admin.application.port.`in`.QueryAdminByUUIDUseCase +import hs.kr.entrydsm.user.infrastructure.grpc.server.mapper.UserGrpcMapper +import net.devh.boot.grpc.server.service.GrpcService +import java.util.UUID + +@GrpcService +class AdminGrpcService( + private val queryAdminByUUIDUseCase: QueryAdminByUUIDUseCase, + private val userGrpcMapper: UserGrpcMapper +) : AdminServiceGrpcKt.AdminServiceCoroutineImplBase() { + + override suspend fun getAdminByUUID(request: AdminServiceProto.GetAdminIdRequest): AdminServiceProto.GetAdminIdResponse { + val adminId = UUID.fromString(request.adminId) + val currentAdminId = queryAdminByUUIDUseCase.queryByUUID(adminId) + return userGrpcMapper.toGetAdminIdResponse(currentAdminId) + } +} \ No newline at end of file From 16c79e94b9504f5580c5fd69c9281ef8fb2f4aa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A3=BC=EC=9B=90?= Date: Fri, 1 Aug 2025 16:53:38 +0900 Subject: [PATCH 5/5] =?UTF-8?q?feat=20(=20#25=20)=20:=20=EB=88=84=EB=9D=BD?= =?UTF-8?q?=EB=90=9C=20kdoc=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/infrastructure/grpc/server/AdminGrpcService.kt | 7 +++++++ .../grpc/server/dto/InternalAdminResponse.kt | 2 ++ 2 files changed, 9 insertions(+) diff --git a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/AdminGrpcService.kt b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/AdminGrpcService.kt index 05b5e85..2fea78b 100644 --- a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/AdminGrpcService.kt +++ b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/AdminGrpcService.kt @@ -13,6 +13,13 @@ class AdminGrpcService( private val userGrpcMapper: UserGrpcMapper ) : AdminServiceGrpcKt.AdminServiceCoroutineImplBase() { + /** + * 어드민 ID로 어드민 ID를 조회합니다. + * + * @param request 어드민 ID가 포함된 gRPC 요청 + * @return 어드민 ID gRPC 응답 + * @throws AdminNotFoundException admin을 찾을 수 없을 때 + */ override suspend fun getAdminByUUID(request: AdminServiceProto.GetAdminIdRequest): AdminServiceProto.GetAdminIdResponse { val adminId = UUID.fromString(request.adminId) val currentAdminId = queryAdminByUUIDUseCase.queryByUUID(adminId) diff --git a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/dto/InternalAdminResponse.kt b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/dto/InternalAdminResponse.kt index d25d7a1..82ac6c4 100644 --- a/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/dto/InternalAdminResponse.kt +++ b/casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/dto/InternalAdminResponse.kt @@ -4,6 +4,8 @@ import java.util.UUID /** * 내부 시스템 간 관리자 정보 응답 데이터를 담는 DTO 클래스입니다. + * + * @property id 고유 식별자 */ data class InternalAdminResponse( val id: UUID,