Skip to content

Commit 27009f5

Browse files
committed
feat ( #20 ) : mapper 추가
1 parent f4c0a4c commit 27009f5

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

  • casper-user/src/main/kotlin/hs/kr/entrydsm/user/infrastructure/grpc/server/mapper
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package hs.kr.entrydsm.user.infrastructure.grpc.server.mapper
2+
3+
import hs.kr.entrydsm.casper.user.proto.UserServiceProto
4+
import hs.kr.entrydsm.user.infrastructure.grpc.server.dto.InternalUserResponse
5+
import hs.kr.entrydsm.user.domain.user.adapter.out.domain.UserRole
6+
import org.springframework.stereotype.Component
7+
8+
/**
9+
* 사용자 정보를 gRPC 프로토콜 버퍼와 매핑하는 매퍼 클래스입니다.
10+
* 내부 DTO와 gRPC 메시지 간의 변환을 담당합니다.
11+
*/
12+
@Component
13+
class UserGrpcMapper {
14+
15+
/**
16+
* InternalUserResponse 객체를 gRPC 사용자 정보 응답으로 변환합니다.
17+
*
18+
* @param userResponse 변환할 사용자 응답 DTO
19+
* @return gRPC 사용자 정보 응답
20+
*/
21+
fun toGetUserInfoResponse(userResponse: InternalUserResponse): UserServiceProto.GetUserInfoResponse {
22+
return UserServiceProto.GetUserInfoResponse.newBuilder()
23+
.setId(userResponse.id.toString())
24+
.setPhoneNumber(userResponse.phoneNumber)
25+
.setName(userResponse.name)
26+
.setIsParent(userResponse.isParent)
27+
.setRole(toProtoUserRole(userResponse.role))
28+
.build()
29+
}
30+
31+
/**
32+
* 도메인 사용자 역할을 gRPC 프로토콜 사용자 역할로 변환합니다.
33+
*
34+
* @param userRole 변환할 도메인 사용자 역할
35+
* @return gRPC 프로토콜 사용자 역할
36+
*/
37+
private fun toProtoUserRole(userRole: UserRole): UserServiceProto.UserRole{
38+
return when(userRole){
39+
UserRole.ROOT -> UserServiceProto.UserRole.ROOT
40+
UserRole.USER -> UserServiceProto.UserRole.USER
41+
UserRole.ADMIN -> UserServiceProto.UserRole.ADMIN
42+
}
43+
}
44+
}

0 commit comments

Comments
 (0)