Skip to content

Commit 78bcb7d

Browse files
committed
feat: 패스포트 테스트 엔드포인트 추가
1 parent 0f87daf commit 78bcb7d

File tree

4 files changed

+82
-2
lines changed

4 files changed

+82
-2
lines changed

src/backend/service-server/src/main/java/com/bbebig/serviceserver/server/controller/ServerController.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,6 @@ public CommonResponse<ServerParticipateResponseDto> inviteServer(
153153
return CommonResponse.onSuccess(serverService.participateServer(memberId, serverId));
154154
}
155155

156-
157-
158156
@Operation(summary = "서버 탈퇴", description = "서버를 탈퇴합니다.")
159157
@ApiResponses(value = {
160158
@ApiResponse(responseCode = "200", description = "서버 탈퇴 성공", useReturnTypeSchema = true),
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.bbebig.serviceserver.server.controller;
2+
3+
import com.bbebig.commonmodule.global.response.code.CommonResponse;
4+
import com.bbebig.serviceserver.server.dto.request.ServerParticipateRequestDto;
5+
import com.bbebig.serviceserver.server.dto.response.PassportTestResponse;
6+
import com.bbebig.serviceserver.server.dto.response.ServerParticipateResponseDto;
7+
import com.bbebig.serviceserver.server.service.PassportTestClient;
8+
import com.bbebig.serviceserver.server.service.ServerService;
9+
import io.swagger.v3.oas.annotations.Operation;
10+
import io.swagger.v3.oas.annotations.media.Content;
11+
import io.swagger.v3.oas.annotations.responses.ApiResponse;
12+
import io.swagger.v3.oas.annotations.responses.ApiResponses;
13+
import io.swagger.v3.oas.annotations.tags.Tag;
14+
import lombok.RequiredArgsConstructor;
15+
import lombok.extern.slf4j.Slf4j;
16+
import org.springframework.web.bind.annotation.PathVariable;
17+
import org.springframework.web.bind.annotation.PostMapping;
18+
import org.springframework.web.bind.annotation.RequestBody;
19+
import org.springframework.web.bind.annotation.RequestHeader;
20+
import org.springframework.web.bind.annotation.RequestMapping;
21+
import org.springframework.web.bind.annotation.RestController;
22+
23+
@Slf4j
24+
@RestController
25+
@RequestMapping("/servers")
26+
@RequiredArgsConstructor
27+
@Tag(name = "서버", description = "서버 관련 API")
28+
public class ServerTestController {
29+
30+
private final ServerService serverService;
31+
private final PassportTestClient passportTestClient;
32+
33+
@Operation(summary = "서버 참여 (서버 테스트 용)", description = "서버를 참여합니다. (서버 테스트 용)")
34+
@ApiResponses(value = {
35+
@ApiResponse(responseCode = "200", description = "서버 참여 성공", useReturnTypeSchema = true),
36+
@ApiResponse(responseCode = "400", description = "", content = @Content)
37+
})
38+
@PostMapping("/{serverId}/participate/test")
39+
public CommonResponse<ServerParticipateResponseDto> participateServerTest(
40+
@RequestHeader("Authorization") String authorizationHeader,
41+
@PathVariable Long serverId
42+
) {
43+
String jwt = extractJwtFromHeader(authorizationHeader);
44+
log.info("[Service] JWT로 Passport 서버 호출: {}", jwt);
45+
46+
PassportTestResponse passportResponse = passportTestClient.getMemberIdByJwt(jwt);
47+
Long memberId = passportResponse.getResult().longValue();
48+
49+
log.info("[Service] Passport 서버 응답: memberId = {}", memberId);
50+
return CommonResponse.onSuccess(serverService.participateServer(memberId, serverId));
51+
}
52+
53+
private String extractJwtFromHeader(String authorizationHeader) {
54+
if (authorizationHeader != null && authorizationHeader.startsWith("Bearer ")) {
55+
return authorizationHeader.substring(7);
56+
}
57+
throw new IllegalArgumentException("JWT 토큰이 없습니다.");
58+
}
59+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.bbebig.serviceserver.server.dto.response;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public class PassportTestResponse {
7+
private String code;
8+
private String message;
9+
private Integer result;
10+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.bbebig.serviceserver.server.service;
2+
3+
import com.bbebig.serviceserver.server.dto.response.PassportTestResponse;
4+
import org.springframework.cloud.openfeign.FeignClient;
5+
import org.springframework.web.bind.annotation.GetMapping;
6+
import org.springframework.web.bind.annotation.RequestParam;
7+
8+
@FeignClient(name = "passportClient", url = "http://43.203.136.82:9080")
9+
public interface PassportTestClient {
10+
11+
@GetMapping("/passports")
12+
PassportTestResponse getMemberIdByJwt(@RequestParam("jwt") String jwt);
13+
}

0 commit comments

Comments
 (0)