티스토리 뷰
안녕하세요 강정호 입니다
오늘은 포스팅을 수정, 삭제하는 API를 개발하겠습니다.
editPost.graphql
// ACTIONS 라는 enum 타입 객체 생성
enum ACTIONS {
EDIT
DELETE
}
// Resolver에 아래와 같이 수정할 데이터변수(caption, location) 넣고, action 변수를 생성한다.
// action변수는 enum 데이터로 Resolver에서 어떻게 처리해주는지 행동 옵션
type Mutation {
editPost(id: String! ,caption: String ,location: String ,action: ACTIONS): Post
}
editPost.js
import { prisma } from "../../../../generated/prisma-client";
// 삭제, 수정을 상수값으로 선언
const DELETE = "DELETE";
const EDIT = "EDIT";
export default {
Mutation: {
editPost: async (parent, args, { request, isAuthenticated }, info) => {
isAuthenticated(request);
//4개의 아규먼트를 받았다.
const { id, caption, location, action } = args;
const user = request;
// 본인이 작성한 post만 수정해야 하므로 $exists로 본인이 작성한 post가 맞는지 조회
const post = await prisma.$exists.post({ id, user: { id: user.id } });
// post가 존재한다면
if(post){
// action 옵션이 EDIT면 수정
if(action === EDIT){
return await prisma.updatePost({
where: { id },
data: {
caption,
location
}
});
}else if(action === DELETE){ //action 옵션이 DELETE면 삭제
return await prisma.deletePost({id});
}
}else{ //post가 존재하지 않으면 오류
throw Error("Post doesnt exist. Try again");
}
}
}
}
테스트 editPost 수정
결과 editPost 포스팅 수정
테스트 포스팅 삭제
포스팅 삭제 결과
'프로젝트' 카테고리의 다른 글
[인스타그램 클론코딩] #3.28~#3.29 newMessage Subscription (0) | 2020.09.27 |
---|---|
[인스타그램 클론코딩] #3.26 seeRoom Resolver (0) | 2020.09.23 |
[인스타그램 클론코딩] #3.19 upload Resolver (0) | 2020.09.14 |
[인스타그램 클론코딩] #3.16 ~ 3.18 isSelf, isFollowing, isLiked with Computed.js (0) | 2020.09.12 |
[인스타그램 클론코딩] #3.13 ~ 3.14 me Resolver + Prisma 한계점, seeFullPost Resolver (0) | 2020.09.09 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- pop_back
- Use case
- 부동산공부
- front
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 항해솔직후기
- Inception
- resize
- 2023년
- 개발자 회고
- 파라메터
- 항해플러스후기
- 깃
- 내년은 빡세게!!
- github
- GIT
- push_back
- 도커
- 월부닷컴
- 관계대수
- 유즈케이스
- Spring boot
- 열반스쿨기초반
- 깃허브
- 월급쟁이부자들
- 항해플러스백엔드
- 인셉션
- docker
- 재테크공부
- 폭포수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함