영상에서 말했듯이 트랜잭션 코드를 아래(데코레이터 사용)처럼 작성했는데,
users.controller.ts에서 users.service.ts의 join으로 로직을 넘기는 파라미터에서 에러가 뜹니다.
넘기는 파라미터에는 body.email, body.nickname, body.password 세 개이지만
레포지토리의 인수가 제공되지 않았다는 에러입니다.
혼자 해결해보는 데 시간이 소요되어 여쭤봅니다.
어떻게 하면 될까요??
@Transaction()
async join(
email: string,
nickname: string,
password: string,
@TransactionRepository(Users) usersRepository: Repository<Users>,
@TransactionRepository(Users)
workspaceMembersRepository: Repository<WorkspaceMembers>,
@TransactionRepository(Users)
channelMembersRepository: Repository<ChannelMembers>,
) {
const user = await usersRepository.findOne({ where: { email } });
if (user) {
throw new UnauthorizedException('이미 존재하는 사용자입니다.');
}
const hashedPassword = await bcrypt.hash(password, 12);
const returned = await usersRepository.save({
email,
nickname,
password: hashedPassword,
});
await workspaceMembersRepository.save({
userId: returned.id,
workspaceId: 1,
});
await channelMembersRepository.save({
userId: returned.id,
channelId: 1,
});
return true;
}
}