Skip to content

Commit

Permalink
#18 [Refactor] 폴더 리팩토링
Browse files Browse the repository at this point in the history
  • Loading branch information
JSoi committed Aug 2, 2022
1 parent 97e6f69 commit d13d86c
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
import com.mpnp.baechelin.bookmark.dto.FolderRequestDto;
import com.mpnp.baechelin.bookmark.dto.FolderResponseDto;
import com.mpnp.baechelin.bookmark.service.FolderService;
import com.mpnp.baechelin.common.SuccessResponse;
import com.mpnp.baechelin.exception.CustomException;
import com.mpnp.baechelin.exception.ErrorCode;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
Expand All @@ -19,45 +22,37 @@ public class FolderController {

private final FolderService folderService;


/** 폴더 신규 생성 */
@PostMapping("/folder")
public ResponseEntity<?> folder (@RequestBody FolderRequestDto folderRequestDto,
@AuthenticationPrincipal User user){

if(user==null){ throw new IllegalArgumentException("해당하는 회원 정보가 없습니다."); }
public SuccessResponse folder (@RequestBody FolderRequestDto folderRequestDto,
@AuthenticationPrincipal User user){
if(user==null){
throw new CustomException(ErrorCode.NO_USER_FOUND);
}
folderService.folder(folderRequestDto, user.getUsername());
return new ResponseEntity<>(HttpStatus.OK);
return new SuccessResponse("폴더 생성 완료");
}



/** 폴더 삭제 -> 삭제 시 안에 담긴 모든 북마크가 삭제됨 */
@DeleteMapping("/folder/{folderId}")
public ResponseEntity<?> folderDelete (@PathVariable int folderId,
public SuccessResponse folderDelete (@PathVariable int folderId,
@AuthenticationPrincipal User user) {

if(user==null){ throw new IllegalArgumentException("해당하는 회원 정보가 없습니다."); }
if(user==null){ throw new CustomException(ErrorCode.NO_USER_FOUND); }
folderService.folderDelete(folderId);
return new ResponseEntity<>(HttpStatus.OK);
return new SuccessResponse("폴더 및 북마크 삭제 완료");
}



/** 폴더 명 변경 */
@PutMapping("/folderUpdate/{folderId}")
public ResponseEntity<?> folderUpdate (@PathVariable int folderId,
public SuccessResponse folderUpdate (@PathVariable int folderId,
@RequestParam String newFolderName,
@AuthenticationPrincipal User user){
if(user==null){ throw new IllegalArgumentException("해당하는 회원 정보가 없습니다."); }

if(user==null){ throw new CustomException(ErrorCode.NO_USER_FOUND); }
folderService.folderUpdate(folderId, newFolderName);

return new ResponseEntity<>(HttpStatus.OK);
return new SuccessResponse("폴더명 변경 완료");
}



/** 폴더 리스트 */
@GetMapping("/folderList")
public List<FolderResponseDto> folderList (@AuthenticationPrincipal User user){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
@Builder
public class FolderRequestDto {

private String folderName = "미분류";
private String folderName;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import com.mpnp.baechelin.bookmark.dto.FolderResponseDto;
import com.mpnp.baechelin.bookmark.repository.FolderRepository;

import com.mpnp.baechelin.exception.CustomException;
import com.mpnp.baechelin.exception.ErrorCode;
import com.mpnp.baechelin.user.domain.User;
import com.mpnp.baechelin.user.repository.UserRepository;
import lombok.RequiredArgsConstructor;
Expand All @@ -22,50 +24,53 @@ public class FolderService {
private final FolderRepository folderRepository;
private final UserRepository userRepository;

/** 폴더 생성 */
/**
* 폴더 생성
*/
@Transactional
public void folder(FolderRequestDto folderRequestDto, String socialId) {

String folderName = folderRequestDto.getFolderName();
if (folderName == null || folderName.equals("")) {
throw new CustomException(ErrorCode.NULL_POINTER_EXCEPTION);
}
User user = userRepository.findBySocialId(socialId);
Folder folder = Folder.builder()
.folderName(folderRequestDto.getFolderName())
.userId(user)
.build();
folderRepository.save(folder);

}

/** 폴더 삭제 */
/**
* 폴더 삭제
*/
public void folderDelete(int folderId) {
folderRepository.deleteById(folderId);
}

/** 폴더 수정 */
/**
* 폴더 수정
*/
public void folderUpdate(int folderId, String newFolderName) {


Optional<Folder> folder = folderRepository.findById(folderId);
folder.get().setFolderName(newFolderName);


folderRepository.save(folder.get());
Folder folder = folderRepository.findById(folderId).orElseThrow(() -> new CustomException(ErrorCode.NO_FOLDER_FOUND));
folder.setFolderName(newFolderName);
folderRepository.save(folder);
}


/** 폴더 조회 */
/**
* 폴더 조회
*/
@Transactional(readOnly = true)
public List<FolderResponseDto> folderList(String socialId) {


User user = userRepository.findBySocialId(socialId); if(user == null){ throw new IllegalArgumentException("해당하는 유저를 찾을 수 없습니다."); }
User user = userRepository.findBySocialId(socialId);
if (user == null) {
throw new CustomException(ErrorCode.NO_USER_FOUND);
}
List<FolderResponseDto> folderResponseDtoList = new ArrayList<>();


for(Folder obj : user.getFolderList()){
for (Folder obj : user.getFolderList()) {
folderResponseDtoList.add(FolderResponseDto.FolderDtoRes(obj));
}


return folderResponseDtoList;
}
}

0 comments on commit d13d86c

Please sign in to comment.