[] 회원 탈퇴 API 생성

This commit is contained in:
김선규 2025-03-11 13:40:50 +09:00
parent 6963c5eadb
commit 2321980ee8

View File

@ -345,8 +345,106 @@ public class UserController : ControllerBase
return StatusCode(500, APIResponse.UnknownError($"[{summary}], {ex.Message}"));
}
}
// [HttpGet("set")]
[HttpGet("cancel")]
[CustomOperation("회원 탈퇴", "사용자 탈퇴", "사용자")]
public async Task<IActionResult> Cancel(string token, string refresh)
{
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");
// 여기서 애초에 토큰 관련 에러가 2개가 나오게 만들어져 있음
var validateToken = await _repositoryService.ValidateToken(token, refresh);
var user = await _dbContext.User.FirstOrDefaultAsync(u => u.uid == validateToken.uid);
if (user == null)
return Ok(APIResponse.Send("001", $"[{summary}], 회원 정보 확인 오류", Empty));
var logUser = new LogUser
{
uid = validateToken.uid,
create_date = DateTime.Now,
create_uid = "System",
log = ""
};
string returnCode = "000";
string returnMsg = $"[{summary}], 정상";
if (await _repositoryService.DeleteData<User>(user))
logUser.log = $"[{summary}] : 정상";
else
{
logUser.log = $"[{summary}] : 실패";
returnMsg = $"[{summary}], 실패";
returnCode = "001";
}
if (!(await _repositoryService.SaveData<LogUser>(logUser)))
_logger.LogError($"[{summary}] : 로그 저장 실패");
return Ok(APIResponse.Send(returnCode, returnMsg, Empty));
}
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}"));
}
}
}
// 근데 회원 정보를 변경하는게 뭐뭐를 변경해야 하는지 아직 정해진게 없어서 이건 일단 보류
/*
[HttpGet("set")]
[CustomOperation("회원 정보 변경", "회원 정보 변경", "사용자")]
public async Task<IActionResult> 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
{
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);
}
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}"));
}
}
}