[] 회원 탈퇴 API 생성

This commit is contained in:
김선규 2025-03-11 13:40:37 +09:00
parent 19fb34bc32
commit 6963c5eadb

View File

@ -31,7 +31,8 @@ public class UserController : ControllerBase
private readonly JwtTokenService _jwtTokenService; private readonly JwtTokenService _jwtTokenService;
private readonly IRepositoryService _repositoryService; private readonly IRepositoryService _repositoryService;
public UserController(AppDbContext dbContext, ILogger<UserController> logger, JwtTokenService jwtTokenService, IRepositoryService repositoryService) public UserController(AppDbContext dbContext, ILogger<UserController> logger, JwtTokenService jwtTokenService,
IRepositoryService repositoryService)
{ {
_dbContext = dbContext; _dbContext = dbContext;
_logger = logger; _logger = logger;
@ -43,14 +44,15 @@ public class UserController : ControllerBase
[CustomOperation("회원 정보 조회", "회원 정보 조회 (자기자신)", "사용자")] [CustomOperation("회원 정보 조회", "회원 정보 조회 (자기자신)", "사용자")]
public async Task<IActionResult> GetUserData(string token, string refresh) public async Task<IActionResult> GetUserData(string token, string refresh)
{ {
if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh)) return BadRequest(APIResponse.InvalidInputError()); if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh))
return BadRequest(APIResponse.InvalidInputError());
if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError());
string summary = String.Empty; string summary = String.Empty;
try try
{ {
var validateToken = await _repositoryService.ValidateToken(token, refresh); var validateToken = await _repositoryService.ValidateToken(token, refresh);
summary = _repositoryService.ReadSummary(typeof(PushController), "GetUserData"); summary = _repositoryService.ReadSummary(typeof(UserController), "GetUserData");
var user = await _dbContext.User var user = await _dbContext.User
.Where(u => u.uid == validateToken.uid) .Where(u => u.uid == validateToken.uid)
@ -83,18 +85,20 @@ public class UserController : ControllerBase
return StatusCode(500, APIResponse.UnknownError(ex.Message)); return StatusCode(500, APIResponse.UnknownError(ex.Message));
} }
} }
[HttpGet("academy")] [HttpGet("academy")]
[CustomOperation("학원 리스트 확인", "사용자가 등록된 학원 리스트 확인", "사용자")] [CustomOperation("학원 리스트 확인", "사용자가 등록된 학원 리스트 확인", "사용자")]
public async Task<IActionResult> ReadAcademyInfo(string token, string refresh) public async Task<IActionResult> ReadAcademyInfo(string token, string refresh)
{ {
if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh)) return BadRequest(APIResponse.InvalidInputError()); if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh))
return BadRequest(APIResponse.InvalidInputError());
if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError());
string summary = String.Empty; string summary = String.Empty;
try try
{ {
var validateToken = await _repositoryService.ValidateToken(token, refresh); var validateToken = await _repositoryService.ValidateToken(token, refresh);
summary = _repositoryService.ReadSummary(typeof(PushController), "ReadAcademyInfo"); summary = _repositoryService.ReadSummary(typeof(UserController), "ReadAcademyInfo");
var academies = await (from ua in _dbContext.UserAcademy var academies = await (from ua in _dbContext.UserAcademy
join a in _dbContext.Academy on ua.bid equals a.bid join a in _dbContext.Academy on ua.bid equals a.bid
@ -131,13 +135,14 @@ public class UserController : ControllerBase
public async Task<IActionResult> Login(string acctype, string sns_id) public async Task<IActionResult> Login(string acctype, string sns_id)
{ {
// API 동작 파라미터 입력 값 확인 // API 동작 파라미터 입력 값 확인
if (string.IsNullOrEmpty(acctype) && string.IsNullOrEmpty(sns_id)) return BadRequest(APIResponse.InvalidInputError()); if (string.IsNullOrEmpty(acctype) && string.IsNullOrEmpty(sns_id))
return BadRequest(APIResponse.InvalidInputError());
if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError());
string summary = String.Empty; string summary = String.Empty;
try try
{ {
summary = _repositoryService.ReadSummary(typeof(PushController), "Login"); summary = _repositoryService.ReadSummary(typeof(UserController), "Login");
var login = await _dbContext.Login var login = await _dbContext.Login
.FirstOrDefaultAsync(l => l.sns_type == acctype && l.sns_id == sns_id); .FirstOrDefaultAsync(l => l.sns_type == acctype && l.sns_id == sns_id);
@ -207,7 +212,7 @@ public class UserController : ControllerBase
try try
{ {
summary = _repositoryService.ReadSummary(typeof(PushController), "UserRegister"); summary = _repositoryService.ReadSummary(typeof(UserController), "UserRegister");
var localPartEmail = request.email.Substring(0, request.email.IndexOf('@')); var localPartEmail = request.email.Substring(0, request.email.IndexOf('@'));
var uid = $"AM{localPartEmail}{DateTime.Now:yyyyMMdd}"; var uid = $"AM{localPartEmail}{DateTime.Now:yyyyMMdd}";
@ -303,13 +308,14 @@ public class UserController : ControllerBase
[CustomOperation("로그아웃", "사용자 로그아웃", "사용자")] [CustomOperation("로그아웃", "사용자 로그아웃", "사용자")]
public async Task<IActionResult> Logout(string token, string refresh) public async Task<IActionResult> Logout(string token, string refresh)
{ {
if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh)) return BadRequest(APIResponse.InvalidInputError()); if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(refresh))
return BadRequest(APIResponse.InvalidInputError());
if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError()); if (!ModelState.IsValid) return BadRequest(APIResponse.InvalidInputError());
string summary = String.Empty; string summary = String.Empty;
try try
{ {
summary = _repositoryService.ReadSummary(typeof(PushController), "UserRegister"); summary = _repositoryService.ReadSummary(typeof(UserController), "UserRegister");
// 여기서 애초에 토큰 관련 에러가 2개가 나오게 만들어져 있음 // 여기서 애초에 토큰 관련 에러가 2개가 나오게 만들어져 있음
var validateToken = await _repositoryService.ValidateToken(token, refresh); var validateToken = await _repositoryService.ValidateToken(token, refresh);
@ -322,6 +328,7 @@ public class UserController : ControllerBase
await _repositoryService.SaveData<RefreshToken>(refreshToken); await _repositoryService.SaveData<RefreshToken>(refreshToken);
return Ok(APIResponse.Send("000", $"[{summary}], 로그아웃 정상", Empty)); return Ok(APIResponse.Send("000", $"[{summary}], 로그아웃 정상", Empty));
} }
// 리프레시 토큰이 없다?? 그럼 이거 무조건 문제지 (이유를 알 수 없는) // 리프레시 토큰이 없다?? 그럼 이거 무조건 문제지 (이유를 알 수 없는)
return Ok(APIResponse.UnknownError()); return Ok(APIResponse.UnknownError());
} }