[x] 테스트 코드 작성 (postman으로 동작은 다 확인했는데 테스트 코드 작성을 제대로 못해가지고 오늘 내로 완성하고 올리겠습니당~!)
Done
[x] 스터디룸 생성
[x] 스터디룸 수정
[x] 스터디룸 삭제
[x] 특정 스터디룸 조회
[x] 스터디룸 조회 (카테고리, 페이지 별)
[x] 해당 스터디룸 참여자 조회
[x] 스터디룸 참여
[x] 스터디룸 나가기
[x] 스터디 피드백
[x] 스터디 연습 내역 등록
의문점
@Getter @Setter
public static class FeedBackResponseDTO {
private Long id;
private String receivedUserId;
private Byte score;
private Boolean passOrFail;
}
receivedUserId 경우 modelMapper에서는 receivedUser 객체의 id 값으로 바로 매핑되었는데 mapStruct에서는 안됨...GroupStudyMapperImpl 에 반영이 안되어서 그럴 가능성도 있긴하지만 (그러기엔 여러번 시도 해봤으나 안됨)..
변경 사항
GroupStudyDTO
StudyCreateDTO, StudyUpdateDTO date, time 타입 변경 & JsonFormat 으로 형식 체크
→ String처럼 입력하면서 date, time 형식 검증 가능함
기존 String 일 때는 date, time 형식에 맞지 않게 입력들어올 경우 데이터 삽입 시 오류 발생 ( 올바른 경로로 들어올 경우 형식에 안맞지는 않겠지만 혹시 모를 상황에 대비)
GroupStudyService의 updateRoom에서
var localDate = StringUtils.toLocalDate(requestDto.getDate());
var localTime = StringUtils.toLocalTime(requestDto.getTime());
만약 dto에 date, time 데이터 안들어왔을 경우 위 코드에서 NullPointerException 발생
ParticipantDTO 에서 유저 아이디 타입이 Long으로 되어있길래 String 으로 수정
GroupStudyService
@Transactional 어노테이션 붙임 → 안붙이니 db 반영안됨 !!
studyRoomParticipantRepository.findByStudyRoomIdAndUserId(id, userId) .orElseThrow(NotJoinedStudyRoom::new);
저렇게 처리하면 방 참가가 안됨! Participant 이 없어야 참가 가능한데 없으면 오류처리해버리니... 그래서 참여 하지 않고 있는경우 null 반환 하도록 바꿨습니다.
GroupStudyController
delete api 에서 응답메세지 아무것도 안주니 뭔가 이상해서 삭제한 방 id 응답하도록 일단 바꿨습니다.
스터디방 참여 api 에서 불필요한 부분(BindingResult, produce, consume = MediaType.APPLICATION_JSON_VALUE) 삭제
StudyHistoryController
여기는 토큰 적용이 안되어 있길래 토큰 사용하도록 바꿨습니다...(아마 작업이 덜 된거 같긴한데 피드백 등록할 때 여기 api 를 사용해야해서 일단 제가 바꿨습니더..ㅎㅎ)
TO DO
Done
의문점
변경 사항
GroupStudyDTO
StudyCreateDTO, StudyUpdateDTO date, time 타입 변경 & JsonFormat 으로 형식 체크 → String처럼 입력하면서 date, time 형식 검증 가능함
만약 dto에 date, time 데이터 안들어왔을 경우 위 코드에서 NullPointerException 발생
GroupStudyService
studyRoomParticipantRepository.findByStudyRoomIdAndUserId(id, userId) .orElseThrow(NotJoinedStudyRoom::new);
저렇게 처리하면 방 참가가 안됨! Participant 이 없어야 참가 가능한데 없으면 오류처리해버리니... 그래서 참여 하지 않고 있는경우 null 반환 하도록 바꿨습니다.
GroupStudyController
StudyHistoryController
안되는 부분