엔티티를 부분적으로 업데이트합니다. 엔티티는 주어진 조건으로 찾을 수 있습니다. save 메소드와 달리 캐스케이드, 관계 및 기타 작업이 포함되지 않은 기본 작업을 실행합니다. 빠르고 효율적인 UPDATE 쿼리를 실행합니다. 데이터베이스에 엔터티가 있는지 확인하지 않습니다.
ex) this.usersRepository.update(id, { email, password })
update()메서드 반환값: UpdateResult
UpdateQueryBuilder 실행에 의해 반환된 결과 객체입니다.
+editProfile에서 이메일을 수정할 때, 이미 존재하는 지는 체크 필요
userProfile을 볼 수 있는 Query를 만들어줍니다. 따라서 user.resolver.ts
파일에 userProfile 메서드를 만들어줍니다.
userProfile 메서드는 user-profile.dto.ts
파일의 userProfileInput을 받고 userProfileOutput을 return 합니다.
userProfile 업데이트를 위해 user.resolver.ts
파일에 editProfile 메서드를 만들어줍니다.
editProfile 메서드는 로그인의 input 값으로는 현재 로그인한 사용자에 대한 정보를 주는 AuthUser와 update 하기 위해 필요한 editProfileInput이 필요합니다. return 값으로는 update 값인 editProfileOutput이 필요합니다.
user.service.ts
파일에서 update 메서드를 사용하여 userId를 받아 email과 password를 업데이트 해주는 새로운 메서드를 만듭니다.
user.resolver.ts
파일의 editProfile 메서드에서 fulfilled 상태라면 try 문에서 user.service.ts
파일의 update 메서드에 userId와 editProfileInput를 인자로 보내줍니다.
user.entity.ts
파일에서 hashPassword로 만들어주기 위해 @BeforeUpdate() 데코레이터를 사용합니다. 이 때 user.service.ts
파일의 editProfile 메서드의 update를 save 메서드로 바꾸어 사용합니다.