현재 controller 에서 get 요청으로 처리했으나 post로 바꿀 수도 있음.
front view에서 줄 맞춰서 보이기 위해 get 요청으로 처리한 것일 뿐임, 정석은 post 요청
[오류]
참석을 완료했으면 참가 신청 취소를 할 수 없게 해야 함
isEnrollableFor
isDisenrollableFor
public boolean isEnrollableFor(UserAccount userAccount) {
// !isAttended(userAccount) 아직 참석을 안했으면
return isNotClosed() && !isAttended(userAccount) && !isAlreadyEnrolled(userAccount); // 이벤트가 종료되지 않았으면서 참석하지 않았을 경우
}
public boolean isDisenrollableFor(UserAccount userAccount) {
return isNotClosed() && !isAttended(userAccount) && isAlreadyEnrolled(userAccount); // 이벤트가 종료되지 않았으면서 이미 참석한 경우
}
// 수락하는 경우에 service 쪽으로 보낸다. 서비스는 트랜잭션 안에 있으므로 도메인을 사용해 정보를 변경해도 commit 될때 db에 반영된다.
출처 : 인프런 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발