Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
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() {

/**
* 어드민 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)
return userGrpcMapper.toGetAdminIdResponse(currentAdminId)
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
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

/**
* 내부 시스템 간 관리자 정보 응답 데이터를 담는 DTO 클래스입니다.
*
* @property id 고유 식별자
*/
data class InternalAdminResponse(
val id: UUID,
)
)
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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 프로토콜 사용자 역할로 변환합니다.
Expand Down
18 changes: 18 additions & 0 deletions casper-user/src/main/proto/admin.proto
Original file line number Diff line number Diff line change
@@ -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;
}