-
Notifications
You must be signed in to change notification settings - Fork 2
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
[BE] 사용자 공유 상태 변경 API 및 공유 링크 조회 API 추가 #194
[BE] 사용자 공유 상태 변경 API 및 공유 링크 조회 API 추가 #194
Conversation
- 유저 검색 API에 Swagger 데코레이터 추가
- app.controller.ts 삭제 - app.controller.spec.ts 삭제 - app.service.ts 삭제 - app.e2e-spec.ts 삭제 - app.module.ts에서 AppController, AppService 정보 삭제
- share_link.entity.ts 추가 - user.entity.ts에 status속성, shareLink 속성 추가 - user.enum.ts에 UserShareStatus enum 추가
- 수정된 entity에 맞춰서 코드들 수정
- 유저의 공유 여부를 수정하는 changeStatus api 추가
- 공유 링크를 가져오는 getShareLink Api 구현
- changeStatus, getShareLink Api에 Swagger 데코레이터 추가
- CookieAuthGuard에서 req에 user정보를 담을 때 status도 담아주도록 수정
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
깔끔합니다!
프론트에서 공유링크 생성이 실제로 어떻게 구현될 진 모르겠지만,
사용자 관점에서 링크 생성 버튼을 누를 때 자동으로 공개로 status가 바뀌어도 좋을것 같아요!
근데 또 다시 생각해보니 그 일은 프론트에서 해주는 게(알아서 changeStatus요청 public 보내주고 화면에 변경된 것 표시해주는 게) 더 효율적일지도 모르겠네요! 잠깐 주절대 보았습니다 고생하셨습니다 준섭님 ㅎ ㅎ
ㅎㅎㅎ저도 그렇게 하려다가 그러면 하나의 api가 너무 무거워지고 신경쓸 것이 은근 많아지더라구요 변경할 것도 많고 |
📎 이슈번호
📃 변경사항
유저 닉네임 검색 API에 Swagger 데코레이터 추가
사용하지 않는 파일 및 코드 삭제
ShareLink Entity 추가
User와
@OneToOne
관계 설정User에 status 속성 추가(기본 값은 'private')
공유 상태 여부를 나타내는 UserShareStatus enum 추가
User Entity 수정하면서 관련 코드 수정
유저 공유 상태를 변경할 수 있는
PATCH /auth/status
api 추가status 요청에 지정된 값만 요청할 수 있도록 StatusValidationPipe 추가
유저 공유 링크를 조회할 수 있는 `GET /auth/sharelink' api 추가
api 요청이 들어오면 일단 서버는 쿠키에서 유저 정보를 읽음
만약 유저가 private인 상태다 → BadRequest 발생
아닌 경우는 데이터베이스에서 유저 정보로 링크 조회
만약 조회되는 링크가 없다면 새로 생성하여 데이터베이스에 저장하고 응답 메세지로 링크 반환
새로 생긴 api에 swagger 추가
🫨 고민한 부분
제가 구상한 순서는 다음과 같습니다.
프론트에서 유저의 공유 상태(공개, 링크만 공개, 비공개)를 변경 ->
PATCH /auth/status
그 후 링크를 조회하고 싶으면 -> 'GET /auth/sharelink'
프론트에서 우선 유저 공유 상태를 변경 api를 요청하고, 그 다음에 공유 링크를 얻고 싶으면 다시 링크 조회 api를 요청하는 식으로 하는 쪽으로 구상했습니다.
링크는 uuid로 했습니다!!!
📌 중점적으로 볼 부분
🎇 동작 화면
우선 로그인�하여 쿠키를 발급!
유저 status 속성값 변경
body에 들어갈 정보들
400 BadRequest 에러 발생
400 BadRequest 에러 발생
유저 정보 반환
공유 링크 조회
400 BadRequest 에러 발생
링크 정보 반환
💫 기타사항