From 94529e1db95ba8cff15689ce73027ade645b27f2 Mon Sep 17 00:00:00 2001 From: Hwan0518 Date: Fri, 30 Jan 2026 22:24:07 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=8C=8C=ED=8A=B8=EB=84=88=20=EC=A0=84?= =?UTF-8?q?=EC=9A=A9=20=EB=B3=B8=EC=9D=B8=20=EC=B6=94=EC=B2=9C=EC=9D=B8=20?= =?UTF-8?q?=EB=B0=8F=20=ED=95=98=EC=9C=84=20=ED=8C=8C=ED=8A=B8=EB=84=88=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20API=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - GET /api/v1/user/relationship/partner/my 엔드포인트 추가 - 개인/기업 파트너 권한으로 본인 데이터만 조회 가능 - 기존 Admin API의 Facade/Response 재사용 Co-Authored-By: Claude Opus 4.5 --- .../GetRelationshipDataController.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/greenfirst/be/user/adapter/in/web/controller/GetRelationshipDataController.java b/src/main/java/greenfirst/be/user/adapter/in/web/controller/GetRelationshipDataController.java index 2fe2c44..ffd2be6 100644 --- a/src/main/java/greenfirst/be/user/adapter/in/web/controller/GetRelationshipDataController.java +++ b/src/main/java/greenfirst/be/user/adapter/in/web/controller/GetRelationshipDataController.java @@ -2,6 +2,7 @@ import greenfirst.be.global.common.response.base.BaseResponse; +import greenfirst.be.global.common.security.CustomUserDetails; import greenfirst.be.user.adapter.in.web.response.PartnerRelationshipResponse; import greenfirst.be.user.application.dto.out.PartnerRelationshipOutDto; import greenfirst.be.user.application.facade.PartnerRelationshipFacade; @@ -10,6 +11,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -31,6 +33,7 @@ public class GetRelationshipDataController { /** * 파트너 관계 조회 API * 1. (admin) 특정 파트너의 추천인 및 하위 파트너 목록 조회 + * 2. (partner) 본인의 추천인 및 하위 파트너 목록 조회 */ // 1. (admin) 특정 파트너의 추천인 및 하위 파트너 목록 조회 @@ -48,4 +51,23 @@ public BaseResponse getPartnerRelationshipData(@Pat return new BaseResponse<>(response); } + + // 2. (partner) 본인의 추천인 및 하위 파트너 목록 조회 + @Operation(summary = "(partner) 본인의 추천인 및 하위 파트너 목록 조회", description = "(partner) 본인의 추천인 및 하위 파트너 목록 조회", tags = "User - Partner") + @GetMapping("/partner/my") + @PreAuthorize("hasAnyAuthority('PERSONAL_PARTNER', 'CORPORATE_PARTNER')") + @SecurityRequirement(name = "Bearer Auth") + public BaseResponse getMyPartnerRelationshipData( + @AuthenticationPrincipal CustomUserDetails authentication) { + + // 로그인한 파트너의 추천인 및 하위 파트너 목록 조회 + PartnerRelationshipOutDto outDto = partnerRelationshipFacade.getPartnerRelationshipData( + authentication.getUserUuid() + ); + + // result + PartnerRelationshipResponse response = PartnerRelationshipResponse.from(outDto); + return new BaseResponse<>(response); + } + }