Skip to content

1127 BE 회의록

송준섭 edited this page Dec 4, 2023 · 1 revision

BE 추가 개발사항

  • 별에 관련된 API 글 API랑 구분하기 CRUD
    • 유저별로 모든 별에 대한 정보 가져오는 API + 게시글 id
      • GET /board/by-author를 바꿔서 (GET /star/by-author처럼)
        • 별 정보(pos, size, color)와 함께 게시글 id, title을 같이 넘겨
        • 그 뒤에 GET /board/:id 요청하면 게시글 상세정보 고고
    • 생성할 때 PATCH /star/:id 수정+등록
    • 별에 필요한 정보
      • position
      • size
      • color

공유 링크에 대해

  • 유저에 대한 “비공개, 링크로만 접근 가능, 검색 가능” 세 단계 상태 컬럼에 추가하기

    • user 테이블
      • status 컬럼 : [”private”, “shared_link”, “searchable”]
    • share 테이블
      • id 컬럼
      • link 컬럼 : “0000-0000-0000-0000”: uuid string 또는 null
      • user_id 컬럼 : user 테이블 id 외래키
    • 이후 게시글에 대한 정보 요청방법
      • 그냥 user 모듈에서 board service
      • repository를 의존성 주입 한담에 findAlBy..
    • 프로세스
      • 프론트에서 shared/0000-0000-1234
        • GET /api/auth/shared/0000-0000-1234 로 요청
      • 서버에서
        • share 테이블에서 link컬럼 조회하여 매칭되는거 있나 확인
        • 없으면 404
        • 있으면 user_id를 이용해서 그 사람의 별 포지션, 스타일 이런거 가져와서 프론트에 넘겨주면 프론트가 그림
        • 그리고 세부 별 클릭해서 세부 데이터 조회하면 그에 맞는 글 데이터 넘겨주면 됨

    2안

    그냥 맨 처음에 링크에대해 프론트에서 api콜이 오면 우리는 유저 아이디 또는 유저 닉네임만 넘겨준다

    그리고 다시 프론트에서 api를 쏴서 그 유저에 대한 별 스타일 등을 조회한다

    문제점은 지금 조회에 Guard들이 다 있다는것 → 근데 링크조회를 받아온 사용자는 로그인을 안했을 수 있다. 손님일 수있음

    Board 조회에 Guard가 필요한 이유

    일단 지금 구현을 할 때 Guard에서 붙여준 req.user정보를 사용함 → 이건 수정할 수 있어

    로그인 한 사용자에게 서비스를 제공하기로 했음

최종

  • GET /api/auth/shared/0000-0000-1234 로 요청
  • 서버는 링크에 해당하는 유저 닉네임을 넘겨줌 ( 만약 없는 링크면 404 )
  • 클라이언트는 넘겨받은 유저 닉네임으로 GET /api/board/by-author?author=닉네임 으로 별 글 목록 조회
    • GET /board/:id, GET /board/by-author는 public으로 사용할 수 있도록 UseGuards를 뺌
    • GET /board는 사용자 본인의 별글 목록 조회를 위해 새로 만들어서 UseGuards 넣음
    • GET /board/:id ← private이면 private + 본인 요청인 경우에만 허용해야됨 → 이거는 따로 로직 안에 그 글의 주인을 조회 하고 그 글의 주인의 공유 상태를 확인하는 로직 추가
      • 그러니까 그러면 결국 useguard 있어야됨ㅋ
  • 그걸로 렌더링

유저의 처음 상태는 비공개

일단 유저의 공유 여부를 전환하기 위해 PATCH /api/auth/status에 요청을 보냄

요청 메세지 Body는

{
    “status”: “public”  // 또는 "only_link", "private"
}

그 후 공유 링크를 얻으려면 GET /api/auth/sharelink에 요청을 보냄

그러면 서버는 쿠키에서 유저 정보를 읽음

만약 유저가 private인 상태다 → NotFound 발생

아닌 경우는 데이터베이스에서 유저 정보로 링크 조회

만약 조회되는 링크가 없다면 새로 생성하여 데이터베이스에 저장하고 응답메세지로 반환

글 조회에 Guard가 필요하냐

소개

규칙

학습 기록

[공통] 개발 기록

[재하] 개발 기록

[준섭] 개발 기록

회의록

스크럼 기록

팀 회고

개인 회고

멘토링 일지

Clone this wiki locally