modified backend @PostMapping("login") endpoint to return User (#19, #18)

This commit is contained in:
Art
2021-09-18 08:34:01 +03:00
parent efad81dda5
commit e891ef29a1
2 changed files with 14 additions and 17 deletions

View File

@ -46,21 +46,15 @@ public class UserResource {
}
@PostMapping("login")
public ResponseEntity<HttpResponse> login(@RequestBody User user) {
public ResponseEntity<User> login(@RequestBody User user) {
authenticate(user.getUsername(), user.getPassword());
UserDetails userDetails = userService.loadUserByUsername(user.getUsername());
HttpResponse httpResponse = HttpResponse.builder()
.httpStatus(OK)
.reason(OK.getReasonPhrase().toUpperCase())
.message("User logged in successfully")
.httpStatusCode(OK.value())
.build();
User byUsername = userService.findByUsername(user.getUsername());
return ResponseEntity.ok()
.header(SecurityConstants.JWT_TOKEN_HEADER, jwtTokenProvider.generateJwtToken(userDetails))
.body(httpResponse);
.body(byUsername);
}
@PostMapping("add")

View File

@ -198,20 +198,23 @@ class UserResourceTest extends BaseUserTest {
.username(username)
.password(password)
.build();
var responseEntity = restTemplate.postForEntity("/user/login", userLogin, HttpResponse.class);
var responseEntity = restTemplate.postForEntity("/user/login", userLogin, User.class);
//then
log.debug("Response Entity: {}", responseEntity);
assertThat(responseEntity.getStatusCode()).isEqualTo(OK);
assertThat(responseEntity.getBody())
.isNotNull()
.hasNoNullFieldsOrProperties()
.satisfies(httpResponse -> assertAll(
() -> assertThat(httpResponse.getHttpStatusCode()).isEqualTo(200),
() -> assertThat(httpResponse.getHttpStatus()).isEqualTo(OK),
() -> assertThat(httpResponse.getReason()).isEqualTo("OK"),
() -> assertThat(httpResponse.getMessage()).isEqualTo(expectedMessage)
));
.hasNoNullFieldsOrPropertiesExcept("lastLoginDate", "lastLoginDateDisplay", "password")
.hasFieldOrPropertyWithValue("username", fakeUser.getUsername())
.hasFieldOrPropertyWithValue("email", fakeUser.getEmail())
.hasFieldOrPropertyWithValue("firstName", fakeUser.getFirstName())
.hasFieldOrPropertyWithValue("lastName", fakeUser.getLastName())
.hasFieldOrPropertyWithValue("isActive", true)
.hasFieldOrPropertyWithValue("isNotLocked", true)
.hasFieldOrPropertyWithValue("role", "ROLE_ADMIN")
.satisfies(u -> assertThat(u.getProfileImageUrl()).endsWith(String.format("/user/image/profile/%s/avatar.jpg", u.getUserId())));
String token = responseEntity.getHeaders().getFirst(JWT_TOKEN_HEADER);
log.debug("Token: {}", token);
assertThat(token).isNotBlank();