33import com .ai .lawyer .domain .member .dto .MemberLoginRequest ;
44import com .ai .lawyer .domain .member .dto .MemberResponse ;
55import com .ai .lawyer .domain .member .dto .MemberSignupRequest ;
6- import com .ai .lawyer .domain .member .entity .Member ;
76import com .ai .lawyer .domain .member .service .MemberService ;
87import io .swagger .v3 .oas .annotations .Operation ;
98import io .swagger .v3 .oas .annotations .responses .ApiResponse ;
@@ -37,14 +36,9 @@ public class MemberController {
3736 public ResponseEntity <MemberResponse > signup (@ Valid @ RequestBody MemberSignupRequest request ) {
3837 log .info ("회원가입 요청: email={}, name={}" , request .getLoginId (), request .getName ());
3938
40- try {
41- MemberResponse response = memberService .signup (request );
42- log .info ("회원가입 성공: memberId={}" , response .getMemberId ());
43- return ResponseEntity .status (HttpStatus .CREATED ).body (response );
44- } catch (IllegalArgumentException e ) {
45- log .warn ("회원가입 실패: {}" , e .getMessage ());
46- return ResponseEntity .badRequest ().build ();
47- }
39+ MemberResponse response = memberService .signup (request );
40+ log .info ("회원가입 성공: memberId={}" , response .getMemberId ());
41+ return ResponseEntity .status (HttpStatus .CREATED ).body (response );
4842 }
4943
5044 @ PostMapping ("/login" )
@@ -57,14 +51,9 @@ public ResponseEntity<MemberResponse> login(@Valid @RequestBody MemberLoginReque
5751 HttpServletResponse response ) {
5852 log .info ("로그인 요청: email={}" , request .getLoginId ());
5953
60- try {
61- MemberResponse memberResponse = memberService .login (request , response );
62- log .info ("로그인 성공: memberId={}" , memberResponse .getMemberId ());
63- return ResponseEntity .ok (memberResponse );
64- } catch (IllegalArgumentException e ) {
65- log .warn ("로그인 실패: {}" , e .getMessage ());
66- return ResponseEntity .status (HttpStatus .UNAUTHORIZED ).build ();
67- }
54+ MemberResponse memberResponse = memberService .login (request , response );
55+ log .info ("로그인 성공: memberId={}" , memberResponse .getMemberId ());
56+ return ResponseEntity .ok (memberResponse );
6857 }
6958
7059 @ PostMapping ("/logout" )
@@ -102,18 +91,12 @@ public ResponseEntity<MemberResponse> refreshToken(HttpServletRequest request,
10291 String refreshToken = extractRefreshTokenFromCookies (request );
10392
10493 if (refreshToken == null ) {
105- log .warn ("리프레시 토큰이 없음" );
106- return ResponseEntity .status (HttpStatus .UNAUTHORIZED ).build ();
94+ throw new com .ai .lawyer .domain .member .exception .MemberAuthenticationException ("리프레시 토큰이 없습니다." );
10795 }
10896
109- try {
110- MemberResponse memberResponse = memberService .refreshToken (refreshToken , response );
111- log .info ("토큰 재발급 성공: memberId={}" , memberResponse .getMemberId ());
112- return ResponseEntity .ok (memberResponse );
113- } catch (IllegalArgumentException e ) {
114- log .warn ("토큰 재발급 실패: {}" , e .getMessage ());
115- return ResponseEntity .status (HttpStatus .UNAUTHORIZED ).build ();
116- }
97+ MemberResponse memberResponse = memberService .refreshToken (refreshToken , response );
98+ log .info ("토큰 재발급 성공: memberId={}" , memberResponse .getMemberId ());
99+ return ResponseEntity .ok (memberResponse );
117100 }
118101
119102 @ DeleteMapping ("/withdraw" )
@@ -124,25 +107,18 @@ public ResponseEntity<MemberResponse> refreshToken(HttpServletRequest request,
124107 @ ApiResponse (responseCode = "404" , description = "존재하지 않는 회원" )
125108 })
126109 public ResponseEntity <Void > withdraw (Authentication authentication , HttpServletResponse response ) {
127- if (authentication == null || authentication .getName () == null ) {
128- log .warn ("인증되지 않은 회원탈퇴 요청" );
129- return ResponseEntity .status (HttpStatus .UNAUTHORIZED ).build ();
110+ if (authentication == null || authentication .getPrincipal () == null ) {
111+ throw new com .ai .lawyer .domain .member .exception .MemberAuthenticationException ("인증이 필요합니다." );
130112 }
131113
132- String loginId = authentication .getName ();
133- log .info ("회원탈퇴 요청: email={}" , loginId );
134-
135- try {
136- // loginId로 Member를 조회하여 실제 memberId 사용
137- Member member = memberService .findByLoginId (loginId );
138- memberService .withdraw (member .getMemberId ());
139- memberService .logout (loginId , response ); // 탈퇴 후 로그아웃 처리
140- log .info ("회원탈퇴 성공: email={}, memberId={}" , loginId , member .getMemberId ());
141- return ResponseEntity .ok ().build ();
142- } catch (IllegalArgumentException e ) {
143- log .warn ("회원탈퇴 실패: {}" , e .getMessage ());
144- return ResponseEntity .notFound ().build ();
145- }
114+ Long memberId = (Long ) authentication .getPrincipal ();
115+ String loginId = (String ) authentication .getDetails ();
116+ log .info ("회원탈퇴 요청: memberId={}, email={}" , memberId , loginId );
117+
118+ memberService .withdraw (memberId );
119+ memberService .logout (loginId , response ); // 탈퇴 후 로그아웃 처리
120+ log .info ("회원탈퇴 성공: memberId={}, email={}" , memberId , loginId );
121+ return ResponseEntity .ok ().build ();
146122 }
147123
148124 @ GetMapping ("/me" )
@@ -152,24 +128,16 @@ public ResponseEntity<Void> withdraw(Authentication authentication, HttpServletR
152128 @ ApiResponse (responseCode = "401" , description = "인증되지 않은 사용자" )
153129 })
154130 public ResponseEntity <MemberResponse > getMyInfo (Authentication authentication ) {
155- if (authentication == null || authentication .getName () == null ) {
156- log .warn ("인증되지 않은 정보 조회 요청" );
157- return ResponseEntity .status (HttpStatus .UNAUTHORIZED ).build ();
131+ if (authentication == null || authentication .getPrincipal () == null ) {
132+ throw new com .ai .lawyer .domain .member .exception .MemberAuthenticationException ("인증이 필요합니다." );
158133 }
159134
160- String loginId = authentication .getName ();
161- log .info ("내 정보 조회 요청: email={}" , loginId );
162-
163- try {
164- // loginId로 Member를 조회하여 실제 memberId 사용
165- Member member = memberService .findByLoginId (loginId );
166- MemberResponse response = memberService .getMemberById (member .getMemberId ());
167- log .info ("내 정보 조회 성공: memberId={}" , response .getMemberId ());
168- return ResponseEntity .ok (response );
169- } catch (IllegalArgumentException e ) {
170- log .warn ("내 정보 조회 실패: {}" , e .getMessage ());
171- return ResponseEntity .notFound ().build ();
172- }
135+ Long memberId = (Long ) authentication .getPrincipal ();
136+ log .info ("내 정보 조회 요청: memberId={}" , memberId );
137+
138+ MemberResponse response = memberService .getMemberById (memberId );
139+ log .info ("내 정보 조회 성공: memberId={}" , response .getMemberId ());
140+ return ResponseEntity .ok (response );
173141 }
174142
175143 private String extractRefreshTokenFromCookies (HttpServletRequest request ) {
0 commit comments