diff --git a/src/main/java/com/umc/dream/controller/UserController.java b/src/main/java/com/umc/dream/controller/UserController.java index 7bf403a..a9176de 100644 --- a/src/main/java/com/umc/dream/controller/UserController.java +++ b/src/main/java/com/umc/dream/controller/UserController.java @@ -26,4 +26,11 @@ public ApiResponse join(@RequestBody UserRequestD User user = userService.join(request); return ApiResponse.onSuccess(UserConverter.toJoinResultDTO(user)); } + + @Operation(summary = "로그인 API") + @PostMapping("/login") + public ApiResponse login(@RequestBody UserRequestDTO.LoginDto request){ + User user = userService.login(request); + return ApiResponse.onSuccess(UserConverter.toLoginResultDTO(user)); + } } diff --git a/src/main/java/com/umc/dream/converter/UserConverter.java b/src/main/java/com/umc/dream/converter/UserConverter.java index 82b4037..89c9581 100644 --- a/src/main/java/com/umc/dream/converter/UserConverter.java +++ b/src/main/java/com/umc/dream/converter/UserConverter.java @@ -15,6 +15,11 @@ public static UserResponseDTO.JoinResultDTO toJoinResultDTO(User user) { .build(); } + public static UserResponseDTO.LoginResultDTO toLoginResultDTO(User user) { + return UserResponseDTO.LoginResultDTO.builder() + .userId(user.getId()) + .build(); + } public static User toUser(UserRequestDTO.JoinDto joinDto) { return User.builder() @@ -24,4 +29,5 @@ public static User toUser(UserRequestDTO.JoinDto joinDto) { .role(Role.NORMAL) .build(); } + } diff --git a/src/main/java/com/umc/dream/dto/UserRequestDTO.java b/src/main/java/com/umc/dream/dto/UserRequestDTO.java index aad4773..03d8988 100644 --- a/src/main/java/com/umc/dream/dto/UserRequestDTO.java +++ b/src/main/java/com/umc/dream/dto/UserRequestDTO.java @@ -18,4 +18,11 @@ public static class JoinDto { String passwordConfirm; } + @Getter + public static class LoginDto { + @NotNull + String account; + @NotNull + String password; + } } diff --git a/src/main/java/com/umc/dream/dto/UserResponseDTO.java b/src/main/java/com/umc/dream/dto/UserResponseDTO.java index f513d85..688ce0b 100644 --- a/src/main/java/com/umc/dream/dto/UserResponseDTO.java +++ b/src/main/java/com/umc/dream/dto/UserResponseDTO.java @@ -18,4 +18,11 @@ public static class JoinResultDTO{ LocalDateTime createdAt; } + @Builder + @Getter + @NoArgsConstructor + @AllArgsConstructor + public static class LoginResultDTO { + Long userId; + } } diff --git a/src/main/java/com/umc/dream/repository/UserRepository.java b/src/main/java/com/umc/dream/repository/UserRepository.java index a48b292..c0fa22a 100644 --- a/src/main/java/com/umc/dream/repository/UserRepository.java +++ b/src/main/java/com/umc/dream/repository/UserRepository.java @@ -3,5 +3,8 @@ import com.umc.dream.domain.User; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.Optional; + public interface UserRepository extends JpaRepository { + Optional findByAccount(String account); } diff --git a/src/main/java/com/umc/dream/service/UserService/UserService.java b/src/main/java/com/umc/dream/service/UserService/UserService.java index 708fc2e..e9c4249 100644 --- a/src/main/java/com/umc/dream/service/UserService/UserService.java +++ b/src/main/java/com/umc/dream/service/UserService/UserService.java @@ -5,4 +5,6 @@ public interface UserService { User join(UserRequestDTO.JoinDto request); + + User login(UserRequestDTO.LoginDto request); } diff --git a/src/main/java/com/umc/dream/service/UserService/UserServiceImpl.java b/src/main/java/com/umc/dream/service/UserService/UserServiceImpl.java index 0b41621..4bd1b5d 100644 --- a/src/main/java/com/umc/dream/service/UserService/UserServiceImpl.java +++ b/src/main/java/com/umc/dream/service/UserService/UserServiceImpl.java @@ -1,5 +1,7 @@ package com.umc.dream.service.UserService; +import com.umc.dream.apiPayload.code.status.ErrorStatus; +import com.umc.dream.apiPayload.exception.GeneralException; import com.umc.dream.converter.UserConverter; import com.umc.dream.domain.User; import com.umc.dream.dto.UserRequestDTO; @@ -19,4 +21,20 @@ public User join(UserRequestDTO.JoinDto request) { return userRepository.save(user); } + @Override + public User login(UserRequestDTO.LoginDto request) { + String userAccount = request.getAccount(); + String userPassword = request.getPassword(); + + User user = userRepository.findByAccount(request.getAccount()) + .orElseThrow(() -> new GeneralException(ErrorStatus._BAD_REQUEST)); + + if (user.getAccount().equals(userAccount) && user.getPassword().equals(userPassword)) { + return user; + } + else { + throw new GeneralException(ErrorStatus._BAD_REQUEST); + } + } + }