Skip to content

Commit

Permalink
Merge pull request #47 from Nook-Book/develop
Browse files Browse the repository at this point in the history
[FEAT] μΌμ‹œμ  μ‚¬μš©μž 검증 단계 ν•΄μ œ
  • Loading branch information
EunbeenDev authored Jan 20, 2025
2 parents bc5e4b0 + 27b0385 commit 4c89cc0
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ public class BookService {
// 검색
@Transactional
public ResponseEntity<?> searchBooks(UserPrincipal userPrincipal, String keyword, int page) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
// 검색 ν‚€μ›Œλ“œ μ €μž₯
keywordService.saveKeyword(user, keyword);

Expand Down Expand Up @@ -130,7 +131,8 @@ public ResponseEntity<?> getBestSellerByCategory(int page, int category, int siz
// 상세 쑰회
@Transactional
public ResponseEntity<?> getBookDetail(UserPrincipal userPrincipal, String isbn13) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
BookStatus bookStatus = BookStatus.BEFORE_READ;
boolean isStoredCollection = false;
boolean hasNote = false;
Expand Down Expand Up @@ -286,7 +288,8 @@ private BookDetailRes convertToBookDetailRes(String json) {
// λ…μ„œ μƒνƒœ λ³€κ²½
@Transactional
public ResponseEntity<?> updateBookStatus(UserPrincipal userPrincipal, Long bookId) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
Optional<Book> bookOptional = bookRepository.findById(bookId);
DefaultAssert.isTrue(bookOptional.isPresent(), "ν•΄λ‹Ή λ„μ„œκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.");
Book book = bookOptional.get();
Expand Down Expand Up @@ -318,7 +321,8 @@ public ResponseEntity<?> updateBookStatus(UserPrincipal userPrincipal, Long book

// λ…μ„œ 리포트 - μΉ΄ν…Œκ³ λ¦¬
public ResponseEntity<ApiResponse> countReadBooksByCategory(UserPrincipal userPrincipal) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
// groupby에 λ”°λΌμ„œ μΉ΄ν…Œκ³ λ¦¬μ— λ§žλŠ” 점수 λ°°μ •
// 읽은 μ±… 쑰회
List<UserBook> userBooks = userBookRepository.findByUserAndBookStatus(user, BookStatus.READ);
Expand Down Expand Up @@ -350,7 +354,8 @@ public ResponseEntity<ApiResponse> countReadBooksByCategory(UserPrincipal userPr

// λ…μ„œ 리포트 - λ…μ„œ 톡계
public ResponseEntity<ApiResponse> countReadBooksByYear(UserPrincipal userPrincipal, int year) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
List<UserBook> userBooks = userBookRepository.findUserBooksByStatusAndYear(user, BookStatus.READ, year);

// μ›”λ³„λ‘œ κ·Έλ£Ήν™”ν•˜μ—¬ 카운트
Expand Down Expand Up @@ -379,7 +384,8 @@ public ResponseEntity<ApiResponse> countReadBooksByYear(UserPrincipal userPrinci
}

private User validUserById(Long userId) {
Optional<User> userOptional = userRepository.findById(userId);
// Optional<User> userOptional = userRepository.findById(userId);
Optional<User> userOptional = userRepository.findById(1L);
DefaultAssert.isTrue(userOptional.isPresent(), "μœ νš¨ν•œ μ‚¬μš©μžκ°€ μ•„λ‹™λ‹ˆλ‹€.");
return userOptional.get();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,8 +371,10 @@ public ResponseEntity<?> changeOwner(UserPrincipal userPrincipal, Long challenge

// μ‚¬μš©μž 검증 λ©”μ„œλ“œ
private User validateUser(UserPrincipal userPrincipal) {
return userService.findByEmail(userPrincipal.getEmail())
.orElseThrow(UserNotFoundException::new);
// return userService.findByEmail(userPrincipal.getEmail())
// .orElseThrow(UserNotFoundException::new);
// userId=1L둜 κ³ μ •
return userService.findById(1L);
}

// μ±Œλ¦°μ§€ 검증 λ©”μ„œλ“œ
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.nookbook.domain.collection.dto.response.*;
import com.nookbook.domain.user.application.UserService;
import com.nookbook.domain.user.domain.User;
import com.nookbook.domain.user.exception.UserNotFoundException;
import com.nookbook.global.config.security.token.UserPrincipal;
import com.nookbook.global.payload.ApiResponse;
import lombok.RequiredArgsConstructor;
Expand Down Expand Up @@ -41,9 +42,7 @@ public class CollectionService {
// μ»¬λ ‰μ…˜ 생성
@Transactional
public ResponseEntity<?> createCollection(UserPrincipal userPrincipal, CollectionCreateReq collectionCreateReq) {
User user= userService.findByEmail(userPrincipal.getEmail())
.orElseThrow(() -> new RuntimeException("μ‚¬μš©μž 정보λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));

User user = validateUser(userPrincipal);
// μ‚¬μš©μžμ˜ λ§ˆμ§€λ§‰ μ»¬λ ‰μ…˜ μˆœμ„œλ₯Ό κ°€μ Έμ™€μ„œ μƒˆλ‘œμš΄ μˆœμ„œλ₯Ό 지정
int maxOrderIndex = collectionRepository.findMaxOrderIndexByUser(user).orElse(0);

Expand All @@ -68,9 +67,7 @@ public ResponseEntity<?> createCollection(UserPrincipal userPrincipal, Collectio
// μ»¬λ ‰μ…˜ 리슀트 쑰회
// CollectionListRes -> CollectionListDetailRes (μ»¬λ ‰μ…˜ID, 제λͺ©, 컀버 리슀트) -> CollectionCoverRes(컀버 리슀트)
public ResponseEntity<?> getCollectionList(UserPrincipal userPrincipal) {
User user = userService.findByEmail(userPrincipal.getEmail())
.orElseThrow(() -> new RuntimeException("μ‚¬μš©μž 정보λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));

User user = validateUser(userPrincipal);
List<Collection> collections = collectionRepository.findAllByUser(user);

List<CollectionListDetailRes> collectionListDetailRes = collections.stream()
Expand Down Expand Up @@ -171,8 +168,7 @@ public CollectionBooksListRes getCollectionBooksListDetailRes(Collection collect

// μ»¬λ ‰μ…˜ μ†Œμœ μž 검증
public Collection findCollectionByUserAndCollectionId(UserPrincipal userPrincipal, Long collectionId) {
User user = userService.findByEmail(userPrincipal.getEmail())
.orElseThrow(() -> new RuntimeException("μ‚¬μš©μž 정보λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));
User user = validateUser(userPrincipal);

Collection collection = collectionRepository.findById(collectionId)
.orElseThrow(() -> new RuntimeException("μ»¬λ ‰μ…˜μ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));
Expand Down Expand Up @@ -247,8 +243,7 @@ public ResponseEntity<?> deleteBookFromCollection(UserPrincipal userPrincipal, L
// μ»¬λ ‰μ…˜ λͺ©λ‘μ˜ μˆœμ„œλ₯Ό λͺ¨λ‘ μš”μ²­κ°’μœΌλ‘œ λ°›μ•„μ„œ μˆ˜μ •
@Transactional
public ResponseEntity<?> editCollectionOrder(UserPrincipal userPrincipal, List<CollectionOrderReq> collectionOrderReqList) {
User user = userService.findByEmail(userPrincipal.getEmail())
.orElseThrow(() -> new RuntimeException("μ‚¬μš©μž 정보λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));
validateUser(userPrincipal);

// μ»¬λ ‰μ…˜ μˆœμ„œ λ³€κ²½
// 1. μš”μ²­κ°’μ˜ collectionIdλ₯Ό 톡해 μ»¬λ ‰μ…˜ 객체λ₯Ό 찾음
Expand Down Expand Up @@ -286,8 +281,7 @@ public ResponseEntity<?> editCollectionOrder(UserPrincipal userPrincipal, List<C

// ν˜„μž¬ μ»¬λ ‰μ…˜ id λͺ©λ‘ 쑰회
public ResponseEntity<?> getCurrentCollectionBooks(UserPrincipal userPrincipal) {
User user = userService.findByEmail(userPrincipal.getEmail())
.orElseThrow(() -> new RuntimeException("μ‚¬μš©μž 정보λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));
User user = validateUser(userPrincipal);

// μœ μ €μ˜ μ»¬λ ‰μ…˜ 쀑 CollectionStatus.MAIN인 μ»¬λ ‰μ…˜μ„ μ°Ύμ•„ λ„μ„œ λͺ©λ‘ 쑰회
List<Collection> mainCollections = collectionRepository.findAllByUserAndCollectionStatus(user, CollectionStatus.MAIN);
Expand All @@ -314,4 +308,12 @@ public ResponseEntity<?> getCurrentCollectionBooks(UserPrincipal userPrincipal)
return ResponseEntity.ok(response);

}

// μ‚¬μš©μž 검증 λ©”μ„œλ“œ
private User validateUser(UserPrincipal userPrincipal) {
// return userService.findByEmail(userPrincipal.getEmail())
// .orElseThrow(UserNotFoundException::new);
// userId=2L둜 κ³ μ •
return userService.findById(1L);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ public void saveKeyword(User user, String keyword) {

// ν‚€μ›Œλ“œ 쑰회
public ResponseEntity<?> getKeywords(UserPrincipal userPrincipal) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
List<Keyword> findKeywords = keywordRepository.findByUser(user);
findKeywords.sort(Comparator.comparing(Keyword::getCreatedAt));

Expand All @@ -72,7 +73,8 @@ public ResponseEntity<?> getKeywords(UserPrincipal userPrincipal) {
// ν‚€μ›Œλ“œ μ‚­μ œ
@Transactional
public ResponseEntity<?> deleteKeyword(UserPrincipal userPrincipal, Long keywordId) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
Keyword findKeyword = keywordRepository.findByUserAndKeywordId(user, keywordId);

DefaultAssert.isTrue(user == findKeyword.getUser(), "ν•΄λ‹Ή 검색어에 λŒ€ν•œ κΆŒν•œμ΄ μ—†μŠ΅λ‹ˆλ‹€.");
Expand All @@ -86,8 +88,10 @@ public ResponseEntity<?> deleteKeyword(UserPrincipal userPrincipal, Long keyword
}

private User validUserById(Long userId) {
Optional<User> userOptional = userRepository.findById(userId);
// Optional<User> userOptional = userRepository.findById(userId);
Optional<User> userOptional = userRepository.findById(1L);
DefaultAssert.isTrue(userOptional.isPresent(), "μœ νš¨ν•œ μ‚¬μš©μžκ°€ μ•„λ‹™λ‹ˆλ‹€.");
return userOptional.get();

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ public class NoteService {
// λ…ΈνŠΈ μ €μž₯
@Transactional
public ResponseEntity<?> saveNewNote(UserPrincipal userPrincipal, CreateNoteReq createNoteReq) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
Book book = validBookById(createNoteReq.getBookId());

UserBook userBook;
Expand Down Expand Up @@ -76,7 +77,8 @@ public ResponseEntity<?> saveNewNote(UserPrincipal userPrincipal, CreateNoteReq
// λ…ΈνŠΈ μˆ˜μ •
@Transactional
public ResponseEntity<?> updateNote(UserPrincipal userPrincipal, Long noteId, UpdateNoteReq updateNoteReq) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
Note note = validNoteById(noteId);
DefaultAssert.isTrue(note.getUserBook().getUser() == user, "μœ νš¨ν•œ 접근이 μ•„λ‹™λ‹ˆλ‹€.");

Expand All @@ -94,7 +96,8 @@ public ResponseEntity<?> updateNote(UserPrincipal userPrincipal, Long noteId, Up
// λ…ΈνŠΈ μ‚­μ œ
@Transactional
public ResponseEntity<?> deleteNote(UserPrincipal userPrincipal, Long noteId) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
Note note = validNoteById(noteId);
DefaultAssert.isTrue(note.getUserBook().getUser() == user, "μœ νš¨ν•œ 접근이 μ•„λ‹™λ‹ˆλ‹€.");

Expand All @@ -111,7 +114,8 @@ public ResponseEntity<?> deleteNote(UserPrincipal userPrincipal, Long noteId) {

// μ±… 정보 쑰회(제λͺ©, 이미지) && λ…ΈνŠΈ λͺ©λ‘ 쑰회
public ResponseEntity<?> getNoteList(UserPrincipal userPrincipal, Long bookId) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
Book book = validBookById(bookId);

Optional<UserBook> userBookOptional = userBookRepository.findByUserAndBook(user, book);
Expand Down Expand Up @@ -145,7 +149,8 @@ public ResponseEntity<?> getNoteList(UserPrincipal userPrincipal, Long bookId) {

// λ…ΈνŠΈ 상세 쑰회
public ResponseEntity<?> getNoteDetail(UserPrincipal userPrincipal, Long noteId) {
User user = validUserById(userPrincipal.getId());
// User user = validUserById(userPrincipal.getId());
User user = validUserById(1L);
Note note = validNoteById(noteId);
DefaultAssert.isTrue(note.getUserBook().getUser() == user, "μœ νš¨ν•œ 접근이 μ•„λ‹™λ‹ˆλ‹€.");

Expand All @@ -163,7 +168,8 @@ public ResponseEntity<?> getNoteDetail(UserPrincipal userPrincipal, Long noteId)
}

private User validUserById(Long userId) {
Optional<User> userOptional = userRepository.findById(userId);
// Optional<User> userOptional = userRepository.findById(userId);
Optional<User> userOptional = userRepository.findById(1L);
DefaultAssert.isTrue(userOptional.isPresent(), "μœ νš¨ν•œ μ‚¬μš©μžκ°€ μ•„λ‹™λ‹ˆλ‹€.");
return userOptional.get();
}
Expand Down
35 changes: 20 additions & 15 deletions src/main/java/com/nookbook/domain/user/application/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,8 @@ public Optional<User> findByEmail(String email) {

@Transactional
public ResponseEntity<?> saveUserInfo(UserPrincipal userPrincipal, UserInfoReq userInfoReq) {
User user = userRepository.findByEmail(userPrincipal.getEmail())
.orElseThrow(() -> new RuntimeException("μ‚¬μš©μž 정보λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));

// User user = validUserByUserId(userPrincipal.getId());
User user = validUserByUserId(2L);
user.saveUserInfo(userInfoReq.getNicknameId(), userInfoReq.getNickname());
createDefaultCollection(user);

Expand Down Expand Up @@ -80,9 +79,8 @@ public void createDefaultCollection(User user) {


public ResponseEntity<?> checkNicknameId(UserPrincipal userPrincipal, NicknameIdCheckReq nicknameIdCheckReq) {
userRepository.findByEmail(userPrincipal.getEmail())
.orElseThrow(() -> new RuntimeException("μ‚¬μš©μž 정보λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€. 둜그인 정보λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”."));

// validUserByUserId(userPrincipal.getId());
validUserByUserId(1L);
boolean isUnique = checkDuplicateNicknameId(nicknameIdCheckReq.getNicknameId());

NicknameIdCheckRes nicknameIdCheckRes = NicknameIdCheckRes.builder()
Expand All @@ -99,12 +97,11 @@ public ResponseEntity<?> checkNicknameId(UserPrincipal userPrincipal, NicknameId
}

public ResponseEntity<?> checkNickname(UserPrincipal userPrincipal, NicknameCheckReq nicknameCheckReq) {
userRepository.findByEmail(userPrincipal.getEmail())
.orElseThrow(() -> new RuntimeException("μ‚¬μš©μž 정보λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));

boolean isUnique = checkDuplicateNickname(nicknameCheckReq.getNickname());
// validUserByUserId(userPrincipal.getId());
validUserByUserId(1L);
boolean isUnique = checkDuplicateNickname(nicknameCheckReq.getNickname());

NicknameCheckRes nicknameCheckRes = NicknameCheckRes.builder()
NicknameCheckRes nicknameCheckRes = NicknameCheckRes.builder()
.isUnique(isUnique)
.build();

Expand All @@ -120,7 +117,8 @@ public ResponseEntity<?> checkNickname(UserPrincipal userPrincipal, NicknameChec
// 아이디 μˆ˜μ •
@Transactional
public ResponseEntity<?> updateNicknameId(UserPrincipal userPrincipal, NicknameIdCheckReq nicknameIdCheckReq) {
User user = validUserByUserId(userPrincipal.getId());
// User user = validUserByUserId(userPrincipal.getId());
User user = validUserByUserId(1L);
String nicknameId = nicknameIdCheckReq.getNicknameId();
boolean isAvailable = checkDuplicateNicknameId(nicknameId);

Expand All @@ -138,7 +136,8 @@ public ResponseEntity<?> updateNicknameId(UserPrincipal userPrincipal, NicknameI
// λ‹‰λ„€μž„ μˆ˜μ •
@Transactional
public ResponseEntity<?> updateNickname(UserPrincipal userPrincipal, NicknameCheckReq nicknameCheckReq) {
User user = validUserByUserId(userPrincipal.getId());
// User user = validUserByUserId(userPrincipal.getId());
User user = validUserByUserId(1L);
String nickname = nicknameCheckReq.getNickname();
boolean isAvailable = checkDuplicateNickname(nickname);

Expand All @@ -164,7 +163,8 @@ private boolean checkDuplicateNickname(String nickname) {
// λ‚΄ 정보 쑰회
// λ‹‰λ„€μž„ 아이디 친ꡬ 수
public ResponseEntity<ApiResponse> getMyInfo(UserPrincipal userPrincipal) {
User user = validUserByUserId(userPrincipal.getId());
// User user = validUserByUserId(userPrincipal.getId());
User user = validUserByUserId(1L);
// TODO: 친ꡬ 수 κ΅¬ν•˜λŠ” 둜직
int num = 0;
MyInfoRes myInfoRes = MyInfoRes.builder()
Expand All @@ -183,7 +183,8 @@ public ResponseEntity<ApiResponse> getMyInfo(UserPrincipal userPrincipal) {
// ν”„λ‘œν•„ 사진 등둝
@Transactional
public ResponseEntity<?> updateImage(UserPrincipal userPrincipal, Boolean isDefaultImage, Optional<MultipartFile> image) {
User user = validUserByUserId(userPrincipal.getId());
// User user = validUserByUserId(userPrincipal.getId());
User user = validUserByUserId(1L);
if (!Objects.equals(user.getImageName(), "default.png")) {
s3Uploader.deleteFile(user.getImageName());
}
Expand Down Expand Up @@ -211,4 +212,8 @@ private User validUserByUserId(Long userId) {
DefaultAssert.isTrue(user.isPresent(), "μ‚¬μš©μžκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.");
return user.get();
}

public User findById(long l) {
return userRepository.findById(l).orElseThrow(() -> new IllegalArgumentException("μ‚¬μš©μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
.permitAll()
.requestMatchers("/swagger", "/swagger-ui.html", "/swagger-ui/**", "/api-docs", "/api-docs/**", "/v3/api-docs/**")
.permitAll()
.requestMatchers("/login/**", "/auth/idTokenLogin", "/oauth2/**", "/api/v1/note/text")
.requestMatchers("/login/**", "/auth/idTokenLogin", "/oauth2/**", "/api/v1/note/text", "api/v1/**")
.permitAll()
.anyRequest()
.authenticated())
Expand Down

0 comments on commit 4c89cc0

Please sign in to comment.