4.18

김부릉·2023년 4월 18일
0
  1. accept-ride 쿼리만들고, test
  2. subscription 만들기. 주변에 승객들의 정보를 구독한다. subscription 쿼리를 만들고. subscriptionOptions를 만드는데 document에는 구독할 쿼리, UpdateQuery 에는 지속적으로 update 되는 data를 받는 함수. 만든 옵션을 subscribeToMore()에 넣는다.
  3. UpdateQuery 에 넣는 함수는 getNearbysubscrioption 에서 받는 객체를 똑같은걸로 새로 만들어서 리턴한다. react apollo 규칙이라고.
  4. 드라이버가 승객의 요청을 수락하면 rideId를 받아야함. 서버 에서는 ok error 만 와서 서버 수정 UpdateRideStatusResponse 에 rideId 추가 rideId를 url /ride/${rideId} 로 넘겨준다. ride 화면 만들기 시작
  5. getRide 쿼리 만들고 match.param 에 rideId 없으면 홈으로 redirect
  6. get ride status 에서 각각 상태 update 해줌. onComplate로.
  7. refetchQueries 는 배열로 만들어야 한다. query, variables 가 있는 객체를 배열로. 드라이버 모드에서 ride status 를 업데이트 하니까 승객모드에서 자동으로 업데이트 됨.
  8. ride status가 finished 상태가 되면 드라이버, 승객 모두 home 으로 redirect. chat 시작
  9. /chat/${chatId} 에서 chatId가 없으면 똑같이 home으로 redirect. chat 쿼리 안에 있는 메세지의 useId 와 cache에 있는 userId를 비교 한다.
  10. send Message 쿼리 만듬 chat onSubit 함수 만들고 css 하고 test
  11. chat subscriptions 만들고 테스트. 메세지가 여러개 중복되서 뜸 popsub 때문에, graphQl radis subscriptions , graphql postgres subscriptions 이런걸 써도 되고 프엔에서 중복되는걸 제거 할 수 도 있음
  12. 이전화면의 메세지리스트 -1번째와 와 메세지 구독아이디가 같으면 없애는 식으로 중복 메세지 처리함.
  13. recompose 라이브러리

heroku
1. now 안쓰고 heroku 로 배포해보겠다.
2. typescript를 js로 tcs. graphql 파일들은 같은 위치로 복사한다
3. heroku로 빌드 하면서 .env 에있는 키들은 heroku 홈피 settins에서 직접 입력
4. database 서버에 만들기
5. db name 수정, 완료.

fetch
1. hook으로 바꾸기, apollo Client, localState, http Link, websocketLink jwt Link , apollo code generation. npx로 프로젝트 다시 만들자.
2. makeVar() 를 사용해서 locolstate 로그인을 만든다.
3. createHttpLink(), setContext() 는 인증 Link. 모든 http request에 호출되는 함수 header에 jwt를 세팅한다. ws Link는 apollo/client-transport-ws 추가하고. webSocketLink 인스턴스 생성.
4. useMutation 사용법, useQuery : mount 될 때 실행, uselazyQuery: 사용자가 검색하거나 클릭 했을 때 실행
5. codegen 설정하고 타입스크립트 써보기
6. 안녕!

0개의 댓글