Skip to content

Commit da68401

Browse files
Merge pull request #27 from EntryDSM/feature/25-gRPC-admin
feature/25-gRPC-admin
2 parents 8652395 + 16c79e9 commit da68401

6 files changed

Lines changed: 66 additions & 4 deletions

File tree

casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/port/in/QueryAdminByUUIDUseCase.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package hs.kr.entrydsm.user.domain.admin.application.port.`in`
22

3-
import hs.kr.entrydsm.user.domain.admin.adapter.`in`.web.dto.response.InternalAdminResponse
3+
import hs.kr.entrydsm.user.infrastructure.grpc.server.dto.InternalAdminResponse
44
import java.util.UUID
55

66
/**

casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/application/service/QueryAdminByUUIDService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package hs.kr.entrydsm.user.domain.admin.application.service
22

3-
import hs.kr.entrydsm.user.domain.admin.adapter.`in`.web.dto.response.InternalAdminResponse
3+
import hs.kr.entrydsm.user.infrastructure.grpc.server.dto.InternalAdminResponse
44
import hs.kr.entrydsm.user.domain.admin.application.port.`in`.QueryAdminByUUIDUseCase
55
import hs.kr.entrydsm.user.domain.admin.application.port.out.QueryAdminPort
66
import hs.kr.entrydsm.user.domain.admin.exception.AdminNotFoundException
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package hs.kr.entrydsm.user.infrastructure.grpc.server
2+
3+
import hs.kr.entrydsm.casper.admin.proto.AdminServiceGrpcKt
4+
import hs.kr.entrydsm.casper.admin.proto.AdminServiceProto
5+
import hs.kr.entrydsm.user.domain.admin.application.port.`in`.QueryAdminByUUIDUseCase
6+
import hs.kr.entrydsm.user.infrastructure.grpc.server.mapper.UserGrpcMapper
7+
import net.devh.boot.grpc.server.service.GrpcService
8+
import java.util.UUID
9+
10+
@GrpcService
11+
class AdminGrpcService(
12+
private val queryAdminByUUIDUseCase: QueryAdminByUUIDUseCase,
13+
private val userGrpcMapper: UserGrpcMapper
14+
) : AdminServiceGrpcKt.AdminServiceCoroutineImplBase() {
15+
16+
/**
17+
* 어드민 ID로 어드민 ID를 조회합니다.
18+
*
19+
* @param request 어드민 ID가 포함된 gRPC 요청
20+
* @return 어드민 ID gRPC 응답
21+
* @throws AdminNotFoundException admin을 찾을 수 없을 때
22+
*/
23+
override suspend fun getAdminByUUID(request: AdminServiceProto.GetAdminIdRequest): AdminServiceProto.GetAdminIdResponse {
24+
val adminId = UUID.fromString(request.adminId)
25+
val currentAdminId = queryAdminByUUIDUseCase.queryByUUID(adminId)
26+
return userGrpcMapper.toGetAdminIdResponse(currentAdminId)
27+
}
28+
}

casper-user/src/main/kotlin/hs/kr/entrydsm/user/domain/admin/adapter/in/web/dto/response/InternalAdminResponse.kt renamed to casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/dto/InternalAdminResponse.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
package hs.kr.entrydsm.user.domain.admin.adapter.`in`.web.dto.response
1+
package hs.kr.entrydsm.user.infrastructure.grpc.server.dto
22

33
import java.util.UUID
44

55
/**
66
* 내부 시스템 간 관리자 정보 응답 데이터를 담는 DTO 클래스입니다.
7+
*
8+
* @property id 고유 식별자
79
*/
810
data class InternalAdminResponse(
911
val id: UUID,
10-
)
12+
)

casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/mapper/UserGrpcMapper.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package hs.kr.entrydsm.user.infrastructure.grpc.server.mapper
22

3+
import hs.kr.entrydsm.casper.admin.proto.AdminServiceProto
34
import hs.kr.entrydsm.casper.user.proto.UserServiceProto
5+
import hs.kr.entrydsm.user.infrastructure.grpc.server.dto.InternalAdminResponse
46
import hs.kr.entrydsm.user.infrastructure.grpc.server.dto.InternalUserResponse
57
import hs.kr.entrydsm.user.domain.user.adapter.out.domain.UserRole
68
import org.springframework.stereotype.Component
@@ -27,6 +29,18 @@ class UserGrpcMapper {
2729
.setRole(toProtoUserRole(userResponse.role))
2830
.build()
2931
}
32+
33+
/**
34+
* InternalAdminResponse 객체를 gRPC 사용자 정보 응답으로 변환합니다.
35+
*
36+
* @param adminResponse 변환할 사용자 응답 DTO
37+
* @return gRPC 사용자 정보 응답
38+
*/
39+
fun toGetAdminIdResponse(adminResponse: InternalAdminResponse): AdminServiceProto.GetAdminIdResponse {
40+
return AdminServiceProto.GetAdminIdResponse.newBuilder()
41+
.setAdminId(adminResponse.id.toString())
42+
.build()
43+
}
3044

3145
/**
3246
* 도메인 사용자 역할을 gRPC 프로토콜 사용자 역할로 변환합니다.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
syntax = "proto3";
2+
3+
package casper.user;
4+
5+
option java_package = "hs.kr.entrydsm.casper.admin.proto";
6+
option java_outer_classname = "AdminServiceProto";
7+
8+
service AdminService {
9+
rpc GetAdminByUUID(GetAdminIdRequest) returns (GetAdminIdResponse);
10+
}
11+
12+
message GetAdminIdRequest {
13+
string admin_id =1;
14+
}
15+
16+
message GetAdminIdResponse{
17+
string admin_id = 1;
18+
}

0 commit comments

Comments
 (0)