You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
프로젝트의 startDate가 태스크의 startDate 이후에 생성되었는지 검증함(반대가 되어야 함)
해결
if 문의 조건을 startDate.isBefore(endDate)에서 endDate.isBefore(startDate)로 변경
TaskDTO.java 변경 전
publicCreate(Stringname, Stringremark, LongmemberId, LocalDateTimestartDate,
LocalDateTimeendDate) {
if (startDate.isBefore(endDate)) {
thrownewBaseHandler(HttpStatus.FORBIDDEN, "종료시간은 시작시간보다 이전일 수 없습니다.");
}
// 코드
}
TaskDTO.java 변경 후
publicCreate(Stringname, Stringremark, LongmemberId, LocalDateTimestartDate,
LocalDateTimeendDate) {
if (endDate.isBefore(startDate)) {
thrownewBaseHandler(HttpStatus.FORBIDDEN, "종료시간은 시작시간보다 이전일 수 없습니다.");
}
// 코드
}
if 문의 조건을 project.getStartDate().isBefore(create.getStartDate()) || project.getStartDate().isAfter(create.getEndDate())에서 project.getStartDate().isAfter(create.getStartDate()) || project.getEndDate().isBefore(create.getEndDate())로 변경
TaskService.java 변경 전
publicTaskEntitycreateTask(HttpServletRequestreq, @ValidLongprojectId, Createcreate) {
ProjectEntityproject = projectRepository.findByIdAndUserEntityEmailAndIsDeletedFalse(
projectId, parsingPram.getEmail(req))
.orElseThrow(() -> newBaseHandler(HttpStatus.NOT_FOUND, "존재하지 않는 프로젝트"));
// 태스크의 일정 검증if (project.getStartDate().isBefore(create.getStartDate()) || project.getStartDate()
.isAfter(create.getEndDate())) {
thrownewBaseHandler(HttpStatus.FORBIDDEN, "태스크는 프로젝트의 기한을 넘어설 수 없습니다.");
}
// 코드
}
TaskService.java 변경 후
publicTaskEntitycreateTask(HttpServletRequestreq, @ValidLongprojectId, Createcreate) {
ProjectEntityproject = projectRepository.findByIdAndUserEntityEmailAndIsDeletedFalse(
projectId, parsingPram.getEmail(req))
.orElseThrow(() -> newBaseHandler(HttpStatus.NOT_FOUND, "존재하지 않는 프로젝트"));
// 태스크의 일정 검증if (project.getStartDate().isAfter(create.getStartDate()) || project.getEndDate()
.isBefore(create.getEndDate())) {
thrownewBaseHandler(HttpStatus.FORBIDDEN, "태스크는 프로젝트의 기한을 넘어설 수 없습니다.");
}
// 코드
}
The text was updated successfully, but these errors were encountered:
문제
원인
해결
startDate.isBefore(endDate)
에서endDate.isBefore(startDate)
로 변경project.getStartDate().isBefore(create.getStartDate()) || project.getStartDate().isAfter(create.getEndDate())
에서project.getStartDate().isAfter(create.getStartDate()) || project.getEndDate().isBefore(create.getEndDate())
로 변경The text was updated successfully, but these errors were encountered: