Skip to content

Commit 90dd519

Browse files
committed
feat : 로그인/로그아웃 기본 응답 api
1 parent 52e9468 commit 90dd519

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

src/main/java/com/rentify/rentify_api/user/controller/UserController.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.rentify.rentify_api.common.response.ApiResponse;
44
import com.rentify.rentify_api.user.dto.CreateUserRequest;
5+
import com.rentify.rentify_api.user.dto.LoginRequest;
56
import com.rentify.rentify_api.user.dto.UserResponse;
67
import com.rentify.rentify_api.user.service.UserService;
78
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -39,4 +40,17 @@ public ResponseEntity<ApiResponse<UserResponse>> getUserById(@PathVariable Long
3940
UserResponse response = userService.getUserInfo(id);
4041
return ResponseEntity.ok(ApiResponse.success(response));
4142
}
43+
44+
@PostMapping("/login")
45+
public ResponseEntity<ApiResponse<Void>> Login(@RequestBody LoginRequest request){
46+
userService.login(request);
47+
48+
return ResponseEntity.ok(ApiResponse.success());
49+
}
50+
51+
@PostMapping("/logout")
52+
public ResponseEntity<ApiResponse<Void>> logout() {
53+
return ResponseEntity.ok(ApiResponse.success());
54+
}
55+
4256
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.rentify.rentify_api.user.dto;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public class LoginRequest {
7+
private String email;
8+
private String password;
9+
}

src/main/java/com/rentify/rentify_api/user/service/UserService.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.rentify.rentify_api.user.service;
22

33
import com.rentify.rentify_api.user.dto.CreateUserRequest;
4+
import com.rentify.rentify_api.user.dto.LoginRequest;
45
import com.rentify.rentify_api.user.dto.UserResponse;
56
import com.rentify.rentify_api.user.entity.User;
67
import com.rentify.rentify_api.user.entity.UserRole;
@@ -63,4 +64,19 @@ public UserResponse getUserInfo(Long id) {
6364
.isActive(user.getIsActive())
6465
.build();
6566
}
67+
68+
@Transactional(readOnly = true)
69+
public void login(LoginRequest request) {
70+
71+
User user = userRepository.findByEmail(request.getEmail())
72+
.orElseThrow(UserNotFoundException::new);
73+
74+
if (!passwordEncoder.matches(request.getPassword(), user.getPassword())) {
75+
throw new IllegalArgumentException("비밀번호가 일치하지 않습니다.");
76+
}
77+
78+
if (!user.getIsActive()) {
79+
throw new IllegalStateException("비활성화된 계정입니다.");
80+
}
81+
}
6682
}

0 commit comments

Comments
 (0)