|
1 | 1 | package com.gdschongik.gdsc.domain.member.api; |
2 | 2 |
|
| 3 | +import static com.gdschongik.gdsc.global.common.constant.RegexConstant.*; |
| 4 | + |
| 5 | +import com.gdschongik.gdsc.domain.discord.dto.response.DiscordGithubHandleResponse; |
3 | 6 | import com.gdschongik.gdsc.domain.member.application.OnboardingMemberService; |
4 | 7 | import com.gdschongik.gdsc.domain.member.dto.request.MemberInfoRequest; |
5 | 8 | import com.gdschongik.gdsc.domain.member.dto.response.MemberDashboardResponse; |
6 | 9 | import com.gdschongik.gdsc.domain.member.dto.response.MemberInfoResponse; |
7 | 10 | import com.gdschongik.gdsc.domain.member.dto.response.MemberUnivStatusResponse; |
8 | 11 | import io.swagger.v3.oas.annotations.Operation; |
| 12 | +import io.swagger.v3.oas.annotations.media.Schema; |
9 | 13 | import io.swagger.v3.oas.annotations.tags.Tag; |
10 | 14 | import jakarta.validation.Valid; |
| 15 | +import jakarta.validation.constraints.Pattern; |
11 | 16 | import lombok.RequiredArgsConstructor; |
12 | 17 | import org.springframework.http.ResponseEntity; |
13 | 18 | import org.springframework.web.bind.annotation.GetMapping; |
14 | 19 | import org.springframework.web.bind.annotation.PostMapping; |
15 | 20 | import org.springframework.web.bind.annotation.RequestBody; |
16 | 21 | import org.springframework.web.bind.annotation.RequestMapping; |
| 22 | +import org.springframework.web.bind.annotation.RequestParam; |
17 | 23 | import org.springframework.web.bind.annotation.RestController; |
18 | 24 |
|
19 | 25 | @Tag(name = "Member - Onboarding", description = "회원 온보딩 API입니다.") |
@@ -51,4 +57,15 @@ public ResponseEntity<MemberInfoResponse> getMemberInfo() { |
51 | 57 | MemberInfoResponse response = onboardingMemberService.getMemberInfo(); |
52 | 58 | return ResponseEntity.ok().body(response); |
53 | 59 | } |
| 60 | + |
| 61 | + @Operation(summary = "GitHub 핸들 조회하기", description = "학번으로 해당 사용자의 GitHub 핸들을 조회합니다.") |
| 62 | + @GetMapping("/github-handle") |
| 63 | + public ResponseEntity<DiscordGithubHandleResponse> getGithubHandle( |
| 64 | + @RequestParam("studentId") |
| 65 | + @Pattern(regexp = STUDENT_ID, message = "학번은 " + STUDENT_ID + " 형식이어야 합니다.") |
| 66 | + @Schema(description = "학번", pattern = STUDENT_ID) |
| 67 | + String studentId) { |
| 68 | + DiscordGithubHandleResponse response = onboardingMemberService.getGithubHandleByStudentId(studentId); |
| 69 | + return ResponseEntity.ok(response); |
| 70 | + } |
54 | 71 | } |
0 commit comments