모임 참가 신청 수락, 취소 및 출석 체크

Yuri Lee·2020년 12월 2일
1

참가 신청 수락 및 취소 | 출석 체크

현재 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에 반영된다.

Event의 Enrollment 목록 순서 정하기

  • 정렬 조건을 줘야 매번 순서가 랜덤하게 바뀌지 않음.

스프링 데이터 JPA가 제공하는 도메인 엔티티 컨버터 사용하기

  • 훨씬 읽기가 쉬워짐.
  • node.js 나 다른 언어의 프레임워크보다 스프링을 선호하는 이유 중 하나는 바인딩을 갖는 기능들이 굉장히 풍부하기 때문이다. 어떤 요청이 들어가 있는 값을 바인딩 하거나 validation 하는 기능이 많다.

패키지 및 테스트 코드 정리 필요

  • 테스트를 할때 상속 X
    1. 모임 도메인 참고, Event 와 Enrollment가 하나의 모듈이고 이 한 덩어리가 Account를 참조, Study를 참조 / Study는 Zone, Tag 참조 / Account도 Zone이랑 Tag 참조 -> 그럼 한쪽에서 단방향으로 참조하게 되어 깔끔한 패키지가 될 것이다. (양방향 관계가 생기지 않도록!)

출처 : 인프런 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발

profile
Step by step goes a long way ✨

0개의 댓글