Skip to content

Commit

Permalink
회원탈퇴 API 구현 완료
Browse files Browse the repository at this point in the history
  • Loading branch information
1000kkannoo authored Jan 11, 2024
2 parents f8ce2a9 + 3d79047 commit da3aad0
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ public interface BookmarkRepository extends JpaRepository<Bookmark, Long> {
List<Bookmark> findByUserId(Long userId);

Optional<Bookmark> findByBookmarkIdAndUserId(Long bookmarkId, Long userId);

void deleteByUserId(Long userId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,12 @@ public CustomResponseEntity<Void> logout(
) {
return CustomResponseEntity.success(userService.logout(user, atk));
}

// 회원탈퇴 API
@DeleteMapping("")
public CustomResponseEntity<Void> deleteAccount(
@Login Users user
) {
return CustomResponseEntity.success(userService.deleteAccount(user));
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.moim.backend.domain.user.service;

import com.moim.backend.domain.bookmark.repository.BookmarkRepository;
import com.moim.backend.domain.space.repository.ParticipationRepository;
import com.moim.backend.domain.user.config.Platform;
import com.moim.backend.domain.user.entity.BookmarkPlace;
import com.moim.backend.domain.user.entity.Users;
import com.moim.backend.domain.user.repository.UserRepository;
import com.moim.backend.domain.user.response.UserLoginResponse;
Expand All @@ -24,6 +27,8 @@ public class UserService {

private final List<OAuth2LoginService> oAuth2LoginServices;
private final UserRepository userRepository;
private final BookmarkRepository bookmarkRepository;
private final ParticipationRepository participationRepository;
private final JwtService jwtService;
private final RedisService redisService;

Expand Down Expand Up @@ -115,4 +120,11 @@ private Users toUserEntity(Users request) {
.name(request.getName())
.build();
}

public Void deleteAccount(Users user) {
Long userId = user.getUserId();
bookmarkRepository.deleteByUserId(userId);
participationRepository.deleteByUserId(userId);
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders;
import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import static com.moim.backend.domain.user.config.Platform.NAVER;
import static org.mockito.BDDMockito.given;
Expand Down Expand Up @@ -188,4 +189,31 @@ void logout() throws Exception {
.andExpect(status().isOk())
.andDo(document);
}

@DisplayName("회원탈퇴 API")
@Test
void deleteAccount() throws Exception {
// given
ResourceSnippetParameters parameters = ResourceSnippetParameters.builder()
.tag("유저 API")
.summary("회원탈퇴 API")
.requestHeaders(
headerWithName("Authorization")
.description("Swagger 요청시 해당 입력칸이 아닌 우측 상단 자물쇠 " +
"또는 Authorize 버튼을 이용해 토큰을 넣어주세요"))
.responseFields(
fieldWithPath("code").type(NUMBER).description("상태 코드"),
fieldWithPath("message").type(STRING).description("상태 메세지"))
.build();

RestDocumentationResultHandler document = documentHandler("delete-account", prettyPrint(), parameters);

// when // then
mockMvc.perform(
RestDocumentationRequestBuilders.delete("/auth")
.header(AUTHORIZATION, "Bearer {token}"))
.andDo(print())
.andExpect(status().isOk())
.andDo(document);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,16 @@ void logout() throws Exception {
.andExpect(status().isOk());
}

@DisplayName("회원탈퇴 API")
@Test
void deleteAccount() throws Exception {
// given
// when // then
mockMvc.perform(
MockMvcRequestBuilders.delete("/auth")
.header(AUTHORIZATION, "Bearer {token}")
)
.andDo(print())
.andExpect(status().isOk());
}
}

0 comments on commit da3aad0

Please sign in to comment.