Skip to content

Commit

Permalink
feat: 회원 탈퇴 api 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
apptie committed Aug 11, 2023
1 parent bf70aed commit 11905e6
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.ddang.ddang.user.presentation.dto.ReadUserResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
Expand All @@ -25,4 +26,12 @@ public ResponseEntity<ReadUserResponse> readById(@AuthenticateUser final Authent

return ResponseEntity.ok(response);
}

@DeleteMapping("/withdrawal")
public ResponseEntity<Void> delete(@AuthenticateUser final AuthenticationUserInfo userInfo) {
userService.deleteById(userInfo.userId());

return ResponseEntity.noContent()
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.BDDMockito.given;
import static org.mockito.BDDMockito.willDoNothing;
import static org.mockito.Mockito.mock;
import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.delete;
import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
Expand Down Expand Up @@ -128,4 +130,20 @@ void setUp() {
jsonPath("$.message", is(userNotFoundException.getMessage()))
);
}

@Test
void 회원_탈퇴한다() throws Exception {
// given
final PrivateClaims privateClaims = new PrivateClaims(1L);

given(mockTokenDecoder.decode(eq(TokenType.ACCESS), anyString())).willReturn(Optional.of(privateClaims));
willDoNothing().given(userService).deleteById(anyLong());

// when & then
mockMvc.perform(delete("/users/withdrawal")
.header(HttpHeaders.AUTHORIZATION, "Bearer accessToken")
).andExpectAll(
status().isNoContent()
);
}
}

0 comments on commit 11905e6

Please sign in to comment.