diff --git a/Program/Controllers/V1/UserController.cs b/Program/Controllers/V1/UserController.cs index aa993e1..2cf53f2 100644 --- a/Program/Controllers/V1/UserController.cs +++ b/Program/Controllers/V1/UserController.cs @@ -28,6 +28,8 @@ namespace Back.Program.Controllers.V1 private readonly ILogger _logger = logger; private readonly SessionManager _sessionManager = sessionManager; + + [HttpGet] [CustomOperation("회원 정보 조회", "회원 정보 조회 (자기자신)", "사용자")] public async Task GetUserData(string token) @@ -35,18 +37,19 @@ namespace Back.Program.Controllers.V1 if (string.IsNullOrEmpty(token)) return BadRequest(APIResponse.InvalidInputError()); if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); string summary = repositoryService.ReadSummary(typeof(UserController), "GetUserData"); + if (token == "VO00") { var (code, WebAuthResult) = await dedicateWeb.GetAuthToken(); if (code != "000") return Ok(APIResponse.Send(code, $"{WebAuthResult}", new { })); token = WebAuthResult; - } + } var result = await userService.GetUser(summary, token); return Ok(result); } - - + + [HttpGet("login")] [CustomOperation("SNS 로그인", "로그인 후 회원이 있는지 확인", "사용자")] public async Task Login(string accType, string snsId) @@ -54,20 +57,19 @@ namespace Back.Program.Controllers.V1 // API 동작 파라미터 입력 값 확인 if (string.IsNullOrEmpty(accType) && string.IsNullOrEmpty(snsId)) return BadRequest(APIResponse.InvalidInputError()); if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); - + string summary = repositoryService.ReadSummary(typeof(UserController), "Login"); var result = await userService.Login(summary, accType, snsId); return Ok(result); - } - + [HttpPost("register")] [CustomOperation("회원 가입", "사용자 회원 가입", "사용자")] public async Task UserRegister([FromBody] UserAll request) { if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); string summary = repositoryService.ReadSummary(typeof(UserController), "UserRegister"); - + var result = await userService.Register(summary, request); return Ok(result); } @@ -80,6 +82,13 @@ namespace Back.Program.Controllers.V1 if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); string summary = repositoryService.ReadSummary(typeof(UserController), "Logout"); + if (token == "VO00") + { + var (code, WebAuthResult) = await dedicateWeb.GetAuthToken(); + if (code != "000") return Ok(APIResponse.Send(code, $"{WebAuthResult}", new { })); + token = WebAuthResult; + } + var result = await userService.Logout(summary, token); return Ok(result); } @@ -92,79 +101,93 @@ namespace Back.Program.Controllers.V1 if (string.IsNullOrEmpty(token)) return BadRequest(APIResponse.InvalidInputError()); if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); string summary = repositoryService.ReadSummary(typeof(UserController), "Cancel"); + + if (token == "VO00") + { + var (code, WebAuthResult) = await dedicateWeb.GetAuthToken(); + if (code != "000") return Ok(APIResponse.Send(code, $"{WebAuthResult}", new { })); + token = WebAuthResult; + } + var result = await userService.Cancel(summary, token); return Ok(result); } - - + + [HttpGet("academy")] [CustomOperation("학원 리스트 확인", "사용자가 등록된 학원 리스트 확인", "사용자")] public async Task GetAcademyData(string token) { if (string.IsNullOrEmpty(token)) return BadRequest(APIResponse.InvalidInputError()); if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); - string summary = repositoryService.ReadSummary(typeof(UserController), "ReadAcademyInfo"); + string summary = repositoryService.ReadSummary(typeof(UserController), "GetAcademyData"); + + if (token == "VO00") + { + var (code, WebAuthResult) = await dedicateWeb.GetAuthToken(); + if (code != "000") return Ok(APIResponse.Send(code, $"{WebAuthResult}", new { })); + token = WebAuthResult; + } var result = await userService.GetAcademy(summary, token); return Ok(result); } - } } // 근데 회원 정보를 변경하는게 뭐뭐를 변경해야 하는지 아직 정해진게 없어서 이건 일단 보류 - /* - [HttpGet("set")] - [CustomOperation("회원 정보 변경", "회원 정보 변경", "사혹자")] - public async Task SetUserData(string token, string refresh) //, [FromBody]) +/* +[HttpGet("set")] +[CustomOperation("회원 정보 변경", "회원 정보 변경", "사혹자")] +public async Task SetUserData(string token, string refresh) //, [FromBody]) +{ + if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh)) + return BadRequest(APIResponse.InvalidInputError()); + if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); + string summary = String.Empty; + + try { - if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh)) - return BadRequest(APIResponse.InvalidInputError()); - if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); - string summary = String.Empty; - - try - { - summary = _repositoryService.ReadSummary(typeof(UserController), "Cancel"); + summary = _repositoryService.ReadSummary(typeof(UserController), "Cancel"); - // 여기서 애초에 토큰 관련 에러가 2개가 나오게 만들어져 있음 - var validateToken = await _repositoryService.ValidateToken(token, refresh); - var user = await _dbContext.User.FirstOrDefaultAsync(u => u.uid == validateToken.uid); + // 여기서 애초에 토큰 관련 에러가 2개가 나오게 만들어져 있음 + var validateToken = await _repositoryService.ValidateToken(token, refresh); + var user = await _dbContext.User.FirstOrDefaultAsync(u => u.uid == validateToken.uid); - } - catch (TokenException tokenEx) - { - return Ok(APIResponse.Send("101", $"[{summary}], 입력 받은 토큰의 문제", Empty)); - } - catch (RefreshRevokeException refreshEx) - { - return Ok(APIResponse.Send("102", $"[{summary}], 폐기된 리프레시 토큰", Empty)); - } - catch (Exception ex) - { - return StatusCode(500, APIResponse.UnknownError($"[{summary}], {ex.Message}")); - } } + catch (TokenException tokenEx) + { + return Ok(APIResponse.Send("101", $"[{summary}], 입력 받은 토큰의 문제", Empty)); + } + catch (RefreshRevokeException refreshEx) + { + return Ok(APIResponse.Send("102", $"[{summary}], 폐기된 리프레시 토큰", Empty)); + } + catch (Exception ex) + { + return StatusCode(500, APIResponse.UnknownError($"[{summary}], {ex.Message}")); + } +} } /* - string uid = ""; - if (token == "System") uid = "System"; - else { - if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh)) return BadRequest(APIResponse.InvalidInputError()); - if(!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); - - var validateToken = await _repositoryService.ValidateToken(token, refresh); - uid = validateToken.uid; - } +string uid = ""; +if (token == "System") uid = "System"; +else { + if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh)) return BadRequest(APIResponse.InvalidInputError()); + if(!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); - string summary = String.Empty; - try - { - summary = _repositoryService.ReadSummary(typeof(PushController), "GetUserData"); - } + var validateToken = await _repositoryService.ValidateToken(token, refresh); + uid = validateToken.uid; +} + +string summary = String.Empty; +try +{ + summary = _repositoryService.ReadSummary(typeof(PushController), "GetUserData"); +} */ \ No newline at end of file diff --git a/Program/Repositories/V1/UserRepository.cs b/Program/Repositories/V1/UserRepository.cs index b6b2d94..3846d97 100644 --- a/Program/Repositories/V1/UserRepository.cs +++ b/Program/Repositories/V1/UserRepository.cs @@ -34,7 +34,7 @@ namespace Back.Program.Repositories.V1 public Task> FindAcademies(string uid) { var academyList = _context.UserAcademy - .Join(_context.Academy, ua => ua.uid, a => a.uid, (ua, a) => new { ua, a }) + .Join(_context.Academy, ua => ua.bid, a => a.bid, (ua, a) => new { ua, a }) .Where(s => s.ua.uid == uid) .Select(s => new AcademyName { bid = s.a.bid, name = s.a.business_name }) .ToListAsync(); diff --git a/Program/Services/V1/UserService.cs b/Program/Services/V1/UserService.cs index deca333..845c9d7 100644 --- a/Program/Services/V1/UserService.cs +++ b/Program/Services/V1/UserService.cs @@ -236,10 +236,8 @@ namespace Back.Program.Services.V1 var uid = validToken.FindFirst(ClaimTypes.NameIdentifier)?.Value ?? string.Empty; var user = await _userRepository.FindUser(uid); if (user == null) return APIResponse.Send("001", $"[{summary}], 회원 정보 확인 오류", new { }); - var academyList = await _userRepository.FindAcademies(uid); - - _logger.LogInformation($"[{summary}]: 성공"); + _logger.LogInformation($"[{summary}]: 성공 - {System.Text.Json.JsonSerializer.Serialize(academyList)}"); return APIResponse.Send("000", $"[{summary}], 정상.", academyList); } }