- 전반적인 세팅 관련
- [x] 전반적인 파일 생성
- [x] Env 읽는 모듈
- [x] Global Pipe 생성
- [x] Global Exception 생성
- [x] DB 연결 생성
- Users 관련
- [x] 모듈 생성
- [x] DB연결
- [x] API 구현
- Auth 관련
- [x] 모듈 생성
- [x] JWT Guard 구현
- [x] API 구현
- Rooms 관련
- [x] 모듈 생성
- [ ] DB연결
- [x] API 구현
- Conversations 관련
- [x] 모듈 생성
- [x] API 구현
- [x] DB에 room 내용 저장하는 것 구현
- Events 관련
- [x] 모듈 생성
- [ ] DB연결
- [x] 방 연결/끊기 구현
- [ ] Voice 구현(webrtc)
- [x] Chatting 구현(websocket)
- [x] Shared Data 구현(Yjs)
다른 module의 도움이 필요한 service가 생각나면 일단 여기 적고 서로 말하기
- AuthService에 token이 주어질 때, decod를 해서 JwtPayloadDto를 전달해주는 service
async getUser(token: string) {
const decoded = this.jwtService.verify<User>(token, { secret: jwtConstants.secret });
if (!decoded) {
throw new UnauthorizedException();
}
return decoded;
}
위와 비슷하면 됩니다.
안 해주면 websocket에서 누가 보낸 socket인지 확인할 수 없습니다.
또한, AuthModule에서 AuthService를 export하게 수정해주세요.
- UserService에서 JwtPayloadDto가 주어질 때, User 객체를 find 해주는 service
DB에서 잘 찾아주신 다음 User 객체를 찾아주시면 됩니다.
- Room 객체가 주어질 때, Conversation을 생성하는 service
conversationData도 추가로 같이 생성해주시면 됩니다. 그래도 좀 후순위입니다.