[Project_하다]/[TroubleShoot_문제해결]
나는 나는 무얼 놓쳤나 #20220411
브렌쏭
2022. 4. 12. 14:22
유저 테이블을 잘 구성해주셨습니다! 다만, user를 find하는 api의 엔드포인트가 잘못 지정되어 있습니다! api의 엔드포인트는 항상 주의해주시길 바랍니다~! 또한, user를 delete하는 api의 경우 현재 resolver에서 리턴값으로 user 객체를 보내주고 있는데 삭제된 데이터의 값을 보내줄 수는 없겠죠? softDelete를 사용했을 때와 같이 return 값을 다르게 지정해주어야 에러가 발생하지 않을 것 같습니다! service 부분에서는 return 값으로 result.affected를 보내주고 있으나, result라는 객체는 softDelete된 객체가 아니기에 null이 리턴되고 있습니다! 해당 부분도 반드시 확인 후 해결 방법을 숙지하시길 바랍니다! 고생하셨습니다~!
- user를 find하는 api의 엔드포인트가 잘못 지정되어 있습니다! api의 엔드포인트는 항상 주의해주시길 바랍니다
- user를 delete하는 api의 경우 현재 resolver에서 리턴값으로 user 객체를 보내주고 있는데 삭제된 데이터의 값을 보내줄 수는 없죠
softDelete를 사용했을 때와 같이 return 값을 다르게 지정해주어야 에러가 발생하지 않을 것 같습니다 - service 부분에서는 return 값으로 result.affected를 보내주고 있으나, result라는 객체는 softDelete된 객체가 아니기에 null이 리턴되고 있습니다
1. 실수 만발
user 대신에 복붙하다가 카테고리라는 이름이 떡하니 박혀있었다. 으악 젠장
2, 3. 고민 중
둘 다 비슷한 맥락의 문제인거 같다. 리턴값을 지정해줘야할 것 같다. 근데 어떻게 지정할까?
@UseGuards(GqlAuthEmailGuard)
@Mutation(() => User)
async deleteUser(@ContextUser() contextUser: any) {
const email = contextUser.email;
await this.userService.delete({
email,
});
const result = 'Deleted...';
return result;
}
직접 리턴 값을 문자열로 바꿔봤으나 딱히 소용은 없었다.
해결
@UseGuards(GqlAuthEmailGuard)
@Mutation(() => String) // 여기에서 리턴되어 프론트로 보내줄 값의 형식을 지정해줘야한다
async deleteUser(@ContextUser() contextUser: any) {
const email = contextUser.email;
await this.userService.delete({
email,
});
const result = 'Deleted...';
return result;
}