티스토리 뷰
안녕하세요 강정호입니다
이번 포스팅에서는 팔로잉, 팔로잉 취소 API를 개발해보겠습니다.
follow.graphql
type Mutation {
follow(id: String!): Boolean!
}
수정을 하는 쿼리작업이기 때문에 Mutation을 사용하였고, follow 메서드는 userId를 매개변수로 받습니다. 리턴값은 변경여부를 보여주는 Boolean 타입입니다.
follow.js
import { isAuthenticated } from "../../../middlewares";
import { prisma } from "../../../../generated/prisma-client";
export default {
Mutation: {
follow: async (_, args, { request }) => {
isAuthenticated(request);
const { id } = args;
const { user } = request;
try {
await prisma.updateUser({
where: {id: user.id},
data: {
following: {
connect: {
id
}
}
}
});
return true;
}catch {
return false;
}
}
}
}
1) isAuthenticated : 인증 메서드를 사용하여 로그인 인증된 User인지 검증을 합니다.
2) user의 id에 해당하는 following에 following 할 id를 넣어서 update. 그리고 자동으로 해당 user는 follower가 생김.
테스트
wwwkang8(cke2ru7tc556r0a35vd9i6jw7) following : minkyu(ckdydwqeeqede0a359c8r7d7k)
minkyu(ckdydwqeeqede0a359c8r7d7k) follower : wwwkang8(cke2ru7tc556r0a35vd9i6jw7)
이렇게 following을 업데이트 하면 자동으로 상대방의 follower까지 업데이트 된다.
unfollow.graphql
type Mutation {
unfollow(id: String!): Boolean!
}
unfollow를 하면 리턴값으로 unfollow 여부를 리턴합니다
unfollow.js
import { isAuthenticated } from "../../../middlewares";
import { prisma } from "../../../../generated/prisma-client";
export default {
Mutation: {
unfollow: async (_, args, {request}) => {
isAuthenticated(request);
const { id } = args;
const { user } = request;
try{
await prisma.updateUser(
{
where: {id: user.id},
data: {
following: {
disconnect: {
id
}
}
}
});
return true;
}catch{
return false;
}
}
}
}
이번엔 follow와 다르게 disconnect를 사용한다.
테스트
unfollow 결과를 보면 이전에 follow following 내역이 사라진 것을 확인할 수 있습니다.
'프로젝트' 카테고리의 다른 글
[인스타그램 클론코딩] #3.13 ~ 3.14 me Resolver + Prisma 한계점, seeFullPost Resolver (0) | 2020.09.09 |
---|---|
[인스타그램 클론코딩] #3.12 editUser seeUser Resolver (0) | 2020.09.08 |
[인스타그램 클론코딩] #3.10 searchUser and searchPost resolver (0) | 2020.09.08 |
[인스타그램 클론코딩] #3.9 toggleLike and addComment Resolver (0) | 2020.09.07 |
[인스타그램 클론코딩] #3.8 toggleLike Resolver Part one (0) | 2020.09.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 월급쟁이부자들
- push_back
- 깃허브
- 인셉션
- 깃
- 재테크공부
- 항해플러스후기
- Inception
- 항해플러스백엔드
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 관계대수
- 내년은 빡세게!!
- Spring boot
- 개발자 회고
- Use case
- github
- docker
- 폭포수
- GIT
- 2023년
- 유즈케이스
- 열반스쿨기초반
- resize
- front
- 항해솔직후기
- 부동산공부
- 도커
- 월부닷컴
- 파라메터
- pop_back
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함