더북(TheBook)

마지막으로 컨트롤러 모듈의 init 함수에서 CheckUser() 메서드를 인터셉터로 등록한다.

▼ app/controllers/init.go

package controllers
 
import "github.com/revel/revel"
 
// ➏ 웹 애플리케이션 초기화 로직 등록
func init() {
    revel.OnAppStart(InitDB)
    revel.InterceptMethod((*GormController).Begin, revel.BEFORE)
    revel.InterceptMethod((*GormController).Commit, revel.AFTER)
    revel.InterceptMethod((*GormController).Rollback, revel.FINALLY)
     
    // 모든 액션마다 setCurrentUser가 수행되도록 인터셉터로 등록
    revel.InterceptMethod((*App).setCurrentUser, revel.BEFORE)
    // CheckUser를 인터셉터로 지정
    revel.InterceptMethod(Post.CheckUser, revel.BEFORE)
    revel.InterceptMethod(Comment.CheckUser, revel.BEFORE)
}

이제 포스트 컨트롤러와 코멘트 컨트롤러의 CheckUser 메서드가 인터셉터로 동작하게 됐다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.