11using Microsoft . AspNetCore . Mvc ;
22using ProjectVG . Application . Services . User ;
33using ProjectVG . Application . Models . User ;
4+ using ProjectVG . Api . Models . Auth . Request ;
5+ using ProjectVG . Api . Models . Auth . Response ;
46
57namespace ProjectVG . Api . Controllers
68{
@@ -17,191 +19,62 @@ public AuthController(IUserService userService, ILogger<AuthController> logger)
1719 _logger = logger ;
1820 }
1921
20- /// <summary>
21- /// 회원가입
22- /// </summary>
2322 [ HttpPost ( "register" ) ]
24- public async Task < ActionResult < AuthResponseDto > > Register ( [ FromBody ] RegisterRequestDto request )
23+ public async Task < ActionResult < AuthResponse > > Register ( [ FromBody ] RegisterRequest request )
2524 {
26- try
25+ var userDto = request . ToUserDto ( ) ;
26+ var createdUser = await _userService . CreateUserAsync ( userDto ) ;
27+
28+ var response = new AuthResponse
2729 {
28- if ( ! ModelState . IsValid )
29- {
30- return BadRequest ( ModelState ) ;
31- }
32-
33- var userDto = new UserDto
34- {
35- Username = request . Username ,
36- Name = request . Name ,
37- Email = request . Email ,
38- Provider = "local" ,
39- ProviderId = request . Username ,
40- IsActive = true
41- } ;
42-
43- var createdUser = await _userService . CreateUserAsync ( userDto ) ;
44-
45- var response = new AuthResponseDto
46- {
47- Success = true ,
48- Message = "회원가입이 완료되었습니다." ,
49- UserId = createdUser . Id ,
50- Username = createdUser . Username ,
51- Email = createdUser . Email
52- } ;
53-
54- _logger . LogInformation ( "새 사용자 회원가입 완료: {Username}" , createdUser . Username ) ;
55- return Ok ( response ) ;
56- }
57- catch ( InvalidOperationException ex )
58- {
59- return BadRequest ( new AuthResponseDto
60- {
61- Success = false ,
62- Message = ex . Message
63- } ) ;
64- }
65- catch ( Exception ex )
66- {
67- _logger . LogError ( ex , "회원가입 중 오류가 발생했습니다" ) ;
68- return StatusCode ( 500 , new AuthResponseDto
69- {
70- Success = false ,
71- Message = "회원가입 중 내부 서버 오류가 발생했습니다."
72- } ) ;
73- }
30+ Success = true ,
31+ Message = "회원가입이 완료되었습니다." ,
32+ UserId = createdUser . Id ,
33+ Username = createdUser . Username ,
34+ Email = createdUser . Email
35+ } ;
36+
37+ _logger . LogInformation ( "새 사용자 회원가입 완료: {Username}" , createdUser . Username ) ;
38+ return Ok ( response ) ;
7439 }
7540
76- /// <summary>
77- /// 로그인
78- /// </summary>
7941 [ HttpPost ( "login" ) ]
80- public async Task < ActionResult < AuthResponseDto > > Login ( [ FromBody ] LoginRequestDto request )
42+ public async Task < ActionResult < AuthResponse > > Login ( [ FromBody ] LoginRequest request )
8143 {
82- try
83- {
84- if ( ! ModelState . IsValid )
85- {
86- return BadRequest ( ModelState ) ;
87- }
88-
89- // 사용자명으로 사용자 조회
90- var user = await _userService . GetUserByUsernameAsync ( request . Username ) ;
91- if ( user == null )
92- {
93- return Unauthorized ( new AuthResponseDto
94- {
95- Success = false ,
96- Message = "사용자명 또는 비밀번호가 올바르지 않습니다."
97- } ) ;
98- }
99-
100- // TODO: 실제 비밀번호 검증 로직 추가 필요
101-
102- var response = new AuthResponseDto
103- {
104- Success = true ,
105- Message = "로그인이 완료되었습니다." ,
106- UserId = user . Id ,
107- Username = user . Username ,
108- Email = user . Email
109- } ;
110-
111- _logger . LogInformation ( "사용자 로그인 완료: {Username}" , user . Username ) ;
112- return Ok ( response ) ;
113- }
114- catch ( Exception ex )
44+ var user = await _userService . GetUserByUsernameAsync ( request . Username ) ;
45+ var response = new AuthResponse
11546 {
116- _logger . LogError ( ex , "로그인 중 오류가 발생했습니다" ) ;
117- return StatusCode ( 500 , new AuthResponseDto
118- {
119- Success = false ,
120- Message = "로그인 중 내부 서버 오류가 발생했습니다."
121- } ) ;
122- }
47+ Success = true ,
48+ Message = "로그인이 완료되었습니다." ,
49+ UserId = user . Id ,
50+ Username = user . Username ,
51+ Email = user . Email
52+ } ;
53+
54+ _logger . LogInformation ( "사용자 로그인 완료: {Username}" , user . Username ) ;
55+ return Ok ( response ) ;
12356 }
12457
125- /// <summary>
126- /// 사용자명 중복 확인
127- /// </summary>
12858 [ HttpGet ( "check-username/{username}" ) ]
129- public async Task < ActionResult < CheckResponseDto > > CheckUsername ( string username )
59+ public async Task < ActionResult < CheckResponse > > CheckUsername ( string username )
13060 {
131- try
132- {
133- var exists = await _userService . UsernameExistsAsync ( username ) ;
134- return Ok ( new CheckResponseDto
135- {
136- Exists = exists ,
137- Message = exists ? "이미 사용 중인 사용자명입니다." : "사용 가능한 사용자명입니다."
138- } ) ;
139- }
140- catch ( Exception ex )
61+ var exists = await _userService . UsernameExistsAsync ( username ) ;
62+ return Ok ( new CheckResponse
14163 {
142- _logger . LogError ( ex , "사용자명 중복 확인 중 오류가 발생했습니다" ) ;
143- return StatusCode ( 500 , new CheckResponseDto
144- {
145- Exists = false ,
146- Message = "중복 확인 중 내부 서버 오류가 발생했습니다."
147- } ) ;
148- }
64+ Exists = exists ,
65+ Message = exists ? "이미 사용 중인 사용자명입니다." : "사용 가능한 사용자명입니다."
66+ } ) ;
14967 }
15068
151- /// <summary>
152- /// 이메일 중복 확인
153- /// </summary>
15469 [ HttpGet ( "check-email/{email}" ) ]
155- public async Task < ActionResult < CheckResponseDto > > CheckEmail ( string email )
70+ public async Task < ActionResult < CheckResponse > > CheckEmail ( string email )
15671 {
157- try
158- {
159- var exists = await _userService . EmailExistsAsync ( email ) ;
160- return Ok ( new CheckResponseDto
161- {
162- Exists = exists ,
163- Message = exists ? "이미 사용 중인 이메일입니다." : "사용 가능한 이메일입니다."
164- } ) ;
165- }
166- catch ( Exception ex )
72+ var exists = await _userService . EmailExistsAsync ( email ) ;
73+ return Ok ( new CheckResponse
16774 {
168- _logger . LogError ( ex , "이메일 중복 확인 중 오류가 발생했습니다" ) ;
169- return StatusCode ( 500 , new CheckResponseDto
170- {
171- Exists = false ,
172- Message = "중복 확인 중 내부 서버 오류가 발생했습니다."
173- } ) ;
174- }
75+ Exists = exists ,
76+ Message = exists ? "이미 사용 중인 이메일입니다." : "사용 가능한 이메일입니다."
77+ } ) ;
17578 }
17679 }
177-
178- // DTO 클래스들
179- public class RegisterRequestDto
180- {
181- public string Username { get ; set ; } = string . Empty ;
182- public string Name { get ; set ; } = string . Empty ;
183- public string Email { get ; set ; } = string . Empty ;
184- public string Password { get ; set ; } = string . Empty ;
185- }
186-
187- public class LoginRequestDto
188- {
189- public string Username { get ; set ; } = string . Empty ;
190- public string Password { get ; set ; } = string . Empty ;
191- }
192-
193- public class AuthResponseDto
194- {
195- public bool Success { get ; set ; }
196- public string Message { get ; set ; } = string . Empty ;
197- public Guid ? UserId { get ; set ; }
198- public string ? Username { get ; set ; }
199- public string ? Email { get ; set ; }
200- }
201-
202- public class CheckResponseDto
203- {
204- public bool Exists { get ; set ; }
205- public string Message { get ; set ; } = string . Empty ;
206- }
20780}
0 commit comments