Instagram Clone/GraghQL API (7) 썸네일형 리스트형 IsSelf and IsFollowing computed or custom field 위 두 이미지에서 보여지듯이, prisma 파일과 graphql 파일에서 정의하는 User가 다르다. graphql에서 정의한 user에는 prisma에서 정의한 user에 없는 요소들이 들어 있다. 이런 요소들은 아래와 같이 parent라는 속성을 이용해 resolver를 만든다. Database에 First name과 Last name이 있다고 하자. Full name을 요청하고 싶으면 어떻게 하면 될까? request하는 user를 불러와서 first name과 last name을 각각 불러준다. 여기서 user를 parent라고 한다. 내가 A라는 사람을 팔로우 하는지 판단하는 isFollowing 함수는, prisma에 등록된 user 중 1) id가.. ETC searchUser and searchPost https://github.com/wonjongRyu/bookstagram/commit/be88151faa875f4f6e3d920db15942ff2c6e731f follow and unfollow https://github.com/wonjongRyu/bookstagram/commit/5170a567a531fd11a0393562c89949525b6b0b14 editUser and seeUser https://github.com/wonjongRyu/bookstagram/commit/5c2d2189420fb0aee72412ea408b7772b345d669 me, Post https://github.com/wonjongRyu/bookstagram/commit/5a4.. SearchUser, SearchPost ToggleLike and AddComment https://github.com/wonjongRyu/bookstagram/commit/7c761c4a8765d16a276e38cf0813975f659a9dd5 ToggleLike는 전 글에 어떻게 사용하는제 설명했고, 댓글을 추가하는 addComment는 아래처럼 addComment 함수의 argument를 소괄호 안에 적고, 생성된 comment의 정보를 대괄호 뒤에 추가로 적어준다. id는 자동 생성, text는 args에서, user는 http header에 적은 토큰에서, post는 args에서 가져온다. Passport JWT https://github.com/wonjongRyu/bookstagram/commit/00507f5393499d0f758fc6d83bea150d4e335bb7 npm install passport passport-jwt jsonwebtoken randomkeygen.com에서 문자열을 하나 가져와서 env에 JWT_SECRET으로 저장 authenticateJwt 함수에서는 passport.authenticate('jwt') 함수를 실행 이 함수는 Strategy를 활용해서 jwt 토큰을 추출 토큰이 추출되면 verifyUser를 payload와 함께 실행 payload는 토큰에서 해석된 id를 받아서, user를 찾아서 리턴 그러면 콜백 함수가 실행되는데, 사용자가 있으면 그 사용자를 req에 추가 .. Request Secret Resolver https://github.com/wonjongRyu/bookstagram/commit/2708c0898deba3c81b1aa8802ec867a17ec78642 로그인을 하기 전에 로그인 비밀 값을 만들어보자 randomlists.com/nouns randomlists.com/random-adjectives 형용사, 명사를 500개씩 가져온다 npm run prisma로 generate해주고 localhost:4000을 새로고침 prisma 웹이랑 datamodel.prisma랑 자동 동기화가 잘 안된다. 직접 등록해줘야 하는듯 아래처럼 하면 prisma에 업데이트 된다. 이걸 메일로 보내기 위해 nodemailer를 사용 메일을 보내기 위해서는 sendgrid라는 transporter가 필요 sendg.. Create Account Resolver https://github.com/wonjongRyu/bookstagram/commit/3842dbcce580def4df13771d4b71e82e11693fd3 graphql 파일에는 mutation과 query가 모두 있어야 한다. localhost:4000으로 들어가보면 DOCS에서 아래와 같이 mutation과 query가 업데이트 되어 있다. 아래처럼 쉽게 계정을 만들 수 있다. 이때 create Account(args){id} 에서 리턴 받길 원하는 값들은 중괄호에 넣는거임 prisma를 확인해보면 아래처럼 User가 생성되었다. 이전 1 다음