Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

users api 추가 #11

Open
wants to merge 17 commits into
base: develop
Choose a base branch
from
Open

users api 추가 #11

wants to merge 17 commits into from

Conversation

hoon5083
Copy link
Member

Related to #{이슈 번호 기입}

체크 리스트

  • 적절한 제목으로 수정했나요?
  • 상단에 이슈 번호를 기입했나요?
  • Target Branch를 올바르게 설정했나요?
  • Label을 알맞게 설정했나요?

작업 내역

  • createUser
  • getMe
  • updateMe
  • deleteMe
  • auth module 관련 문제 수정
  • global validation pipe 추가

비고

  • user schema에서 isActivated는 계획이 변경되면서 불필요한 컬럼이 된걸로 보이는데, 맞는지 확인해주시면 그것까지 수정하겠습니다.

@hoon5083 hoon5083 added the enhancement New feature or request label Sep 15, 2023
@taeboranger
Copy link
Collaborator

음 isActivated는 제 기억으론 아마 소셜로그인/회원가입 시스템이 지금처럼 정착되기 전의 잔재로 기억합니다. 제 코드 상으로도 사용되는 곳이 없었으니 없애도 될 듯 합니다

nickname: createUserDto.nickname,
provider: "KAKAO",
isActivated: true,
defaultPhotoId: Math.floor(Math.random() / 6 + 1),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

defaultPhotoId: Math.floor(Math.random() * 6) + 1

로 수정해야할 것 같습니다!

export class UsersService {
constructor(private readonly prisma: PrismaService) {}

async createUser(createUserDto: CreateUserDto, user: { oauthId: string; email: string }) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

email은 해당 메서드 내에서 쓰임이 없는 것 같은데 확인 부탁드립니다!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

email을 받아보려고 시도하던 흔적이 남아있네요....ㅎ CurrentUser의 리턴 타입에도 없어서 날리겠습니다

@yesjuhee
Copy link
Collaborator

yesjuhee commented Sep 18, 2023

이전 논의에서 모든 데이터를 soft delete 하기로 했던 것으로 기억합니다.
soft delete로 구현 하려면 deleteMe 서비스를 실행할 때 isActivated를 false 로 변경하고 deletedAt에 date를 기록하는 식으로 작동할 수 있지 않을까요?

++Restaurant 에도 isActivated가 들어가 있는데 어떻게 활용할 것인지 아니면 아예 삭제할 것인지 정하고 가야할 것 같긴 합니다

@hoon5083
Copy link
Member Author

hoon5083 commented Sep 20, 2023

이전 논의에서 모든 데이터를 soft delete 하기로 했던 것으로 기억합니다. soft delete로 구현 하려면 deleteMe 서비스를 실행할 때 isActivated를 false 로 변경하고 deletedAt에 date를 기록하는 식으로 작동할 수 있지 않을까요?

++Restaurant 에도 isActivated가 들어가 있는데 어떻게 활용할 것인지 아니면 아예 삭제할 것인지 정하고 가야할 것 같긴 합니다

@yesjuhee 어이쿠 그러게요 생각없이 hardDelete 시켜버렸네요 delete 메서드 자체를 좀 새로 정의해볼 수도 있을거 같은데... 일단 한번 해보겠습니다 :)

@hoon5083
Copy link
Member Author

음 isActivated는 제 기억으론 아마 소셜로그인/회원가입 시스템이 지금처럼 정착되기 전의 잔재로 기억합니다. 제 코드 상으로도 사용되는 곳이 없었으니 없애도 될 듯 합니다

@taeboranger 넵 적용하겠습니다!

@taeboranger
Copy link
Collaborator

아 그리고 hard delete가 아니고 soft delete라서 find할 때 deletedAt: null을 붙여줘야 할 것 같습니다.

@yesjuhee yesjuhee mentioned this pull request Oct 19, 2023
4 tasks
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

소셜 로그인으로 변경되면서 email, password 는 삭제해도 되지 않을까 싶습니다.
그리고 gender가 API 전체에서 쓰이지 않았는데 처음 명세서 계획대로 가면 updateUser에서 수정 가능해야할 것 같습니다!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 Dto는 사용이 되지 않는 것 같은데 맞나욥?

@ApiProperty({ description: "유저 닉네임" })
@IsNotEmpty()
@IsString()
@IsAlphanumeric()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지금 확인해보니까 명세서 상으로는 한글 닉네임이 안된다고 써있었군요..! 한글도 허용하면 좀 복잡해질까요?

@UseGuards(Oauth2Guard({ strict: true }))
@ApiUnauthorizedResponse({ description: "인증 실패 (유효한 토큰이 아니거나 토큰 없음)" })
@ApiInternalServerErrorResponse({ description: "서버 내부 오류" })
async deleteMe(@CurrentUser() user: User) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기도 일괄적으로 @ApiOperation() 들어가면 좋을 것 같습니다!

Comment on lines +77 to +79
nickname: updateUserDto.nickname,
birthYear: updateUserDto.birthYear,
isActivated: updateUserDto.isActivated,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리퀘스트 바디에 값이 없으면 자동으로 업데이트를 패스해주는군요...! 하나 배워 갑니다 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants