Closed sungyongcho closed 2 years ago
해당 PR AdminBro를 적용 하는 Issue와 이어 작업 진행하도록 하겠습니다
app.module.ts 파일 위에 AdminJs 관련 설정이 정의 되어 있습니다. 며칠간 resource에 아무리 entity를 더해 놓아도 절대로 entity들이 뜨지 않았는데 이유를 찾아보니 이전에
adminBroOptions: {
rootPath: '/admin',
resources: [Admin, Channel, Friend, User],
},
로 설정 되어 있던 부분이
adminJsOptions: {
rootPath: '/admin',
resources: [Admin, Channel, Friend, User],
},
으로 변경하니 잘 적용이 되고 있습니다.
AdminJS + NestJS + TypeORM 이용시 각 Entity들에 extends BaseEnttiy
를 설정 해 두어야 entity들을 불러올 수 있습니다
쿠키는 세션 쿠키 (세션 아님) 로 관리됩니다
close #67 close #73
Admin entity 와 Announcement entity와 연계되는 API 구현 하였습니다
모든 endpoint swagger에서 테스트 할 수 있도록 처리 하였습니다
swagger 에서 login 예시로 작성된 값(동일한 값이 DB에 저장되어 있음) 으로 로그인, 로그아웃 진행 할 수 있습니다
login ( POST /api/admin/login), 전체 공지사항 가져오기 (GET /api/admin/announcement) 제외 모든 항목을 세션 로그인된 경우에만 사용 할 수있도록 'LoggedInAdminGuard'를 사용하였습니다
LoggedInGuard, NotLoggedInGuard의 경우 아래 강좌를 참조하였습니다. (영상 도중에 공식문서에 똑같은 코드가 있다고 하는데 눈씻고 찾아봐도 없네요.. 코드 자체에서 동작 원리를 쉽게 유추 해 볼수 있긴 합니다)
엔드포인트의 속성에 따라 컨트롤러를
admin
,admin-announcement
로 분리하여 코드 작성하고, 각 동작에대한 코드는 service에 전부 작성 하였습니다.session의 경우 jwt 토큰 방식을 구현 하여 두가지 차이점을 간략하게 공유드립니다.
close #67