[인스타클론코딩] [Server].11 - 좋아요 토글하기
by 한만섭
- TOC
정리할 내용
prisma.$exist를 이용해 서 좋아요를 토글해보려고합니다.
prisma.@exist
-
toggleLike.js
import { isAuthenticated } from '../../../middlewares'; import { prisma } from '../../../../generated/prisma-client'; export default { Mutation: { toggleLike: async (_, args, { request }) => { // user를 사용하기 위해 request isAuthenticated(request); const { postId } = args; // query인자로 게시물 id를 받음. const { user } = request; // request에서 user 사용 const filterOptions = { AND: [ { user: { id: user.id } }, { post: { id: postId } } ] }; try { const existingLike = await prisma.$exists.like(filterOptions); // 해당 게시물에 좋아요가 존재하는지 확인 if (existingLike) { await prisma.deleteManyLikes(filterOptions); // 존재하면 없앰 } else { await prisma.createLike({ // 만들어냄 user: { connect: { // 연결시켜준다는 것인지 잘 모르겠음. id: user.id } }, post: { connect: { id: postId } } }); } return true; } catch { return false; } } } };
* HTTP Headers
아래 코드를 테스트할 graphql 코드에서 작성한 후에 사용
![image](https://user-images.githubusercontent.com/46010705/60154186-72455580-9821-11e9-83fa-616ec1d72c1f.png)
{ “Authorization”: “Bearer 토큰 “ }
Subscribe via RSS