기존에 구현해 놓았던 로컬 로그인 로직에서 user 생성 로직을 가져옴
생성 DTO에 맞게 랜덤으로 값을 넣어줌
랜덤 숫자로 ID, 닉네임 생성
혹시모를 ID 중복으로인한 게스트 로그인 에러 방지를 위해 이미 존재하는 ID라면 기존의 User 데이터 응답
(중간의 fetch 부분은 팀원의 의견으로 넣은 고양이 사진 가져오기입니다..)
async createGuestUser() {
const randomNum = Math.floor(Math.random() * 10000);
const response = await fetch('<https://api.thecatapi.com/v1/images/search>');
const catImageUrl = (await response.json())[0].url;
const guestUser = {
username: `guest_${randomNum}`,
password: `guest_password_${randomNum}`,
email: `[email protected]`,
nickname: `guest_${randomNum}`,
introduce: `게스트 사용자입니다. `,
profileImageUrl: catImageUrl,
};
const user = await this.userService.findUserByUsername(guestUser.username);
if (!user) {
return this.userService.createLocalUser({ provider: Provider.guest, ...guestUser });
}
return user;
}
DB에 저장되는 데이터
과도한 write, read 요청
=>"nest throttler"