equipment하나를 지우는 뮤테이션을 설정하겠다
type Equipment - 반환할 equipment obj 생성
const resolvers = {
Query: {
teams: () => database.teams
.map((team) => {
team.supplies = database.supplies
.filter((supply) => {
return supply.team === team.id
})
return team
}),
team: (parent, args, context, info) => database.teams
.filter((team) => {
return team.id === args.id
})[0],
equipments: () => database.equipments,
supplies: () => database.supplies
},
Mutation : {
deleteEquipment: (parent, args, context, info) => {
const deleted = database.equipments
.filter((equipment) => {
return equipment.id === args.id
})[0]
database.equipments = database.equipments
.filter((equipment) => {
return equipment.id !== args.id
})
return deleted
}
}
}
//mutation 삭제는 equipment를 반환할거니까 해당 id로 filtering된
//삭제 equipment를 일단 이 deleted 이 변수의값을 입력하고,
//데이터베이스의 equipment에서는 해당 equipment의 filtering을 사용해서
// 삭제해준 다음에 미리 지정되었던 이 delete를 반환
const server = new ApolloServer({ typeDefs, resolvers })
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`)
})
예를들어 equipment를 삭제해보자
그 삭제된 equipment가 반환되는것임
반환이 된다는것은 사용자가 "나는 이 quipment를 삭제하겠다" 하고 mutation을 보냈을때 서버로 부터 그 답신으로 그 삭제된 equipment에 정보가 온다는 뜻이다.
그래서 이 string 인자를 받는 deleteEquipment 해서
삭제된 Equipment를 반환받는 뮤테이션의 삭제를 지정해봤다.
.
.
resolver 에 mutation
.
.
id가 "notebook" 인것을 실어보내서
여기 오른쪽에 "notebook" 항목을 지워주고 그 지워진 항목을
mutation의 결과물로 받아오는 요청임
.
.
🌟 "notebook" 항목 삭제하기
.
.
.
🌟 여기 다시 보면 해당 quipments쿼리에 "notebook"이 삭제가 성공적으로 이루어진걸 확인할 수 있다 !😃
💙
Mutaion 추가 루트 타입
type Mutation {
insertEquipment (
id: String,
used_by: String,
count: Int,
new_or_used: String
): Equipment
...
}
추가할 Equipment의 요소 값들을 인자로 받고 추가된 Equipment를 반환
id: String,
used_by: String,
count: Int,
new_or_used: String
..
이 구성 요소들을 인자로 실어보내는거에요
그결과물로는 역시 새로 추가된 Equipment
요 Equipment를 받아오는걸로 하겠습니다.
시작🤖
index.js
🤖 resolver에 추가하기
간단히 설명하지면
여기 이 내 항목들은 모두 이 args에 실려 보내지게 되있습니다.
즉 이 args에는 id, used_by, count, new_or_used가 들어있는것입니다.
즉 이 args는 equipment와 같은데이터구조를 갖고있을거고,
이거를 database에 equipments에 push.. 추가해줌으로써
우리 목록에 추가를 해주고 그걸 그대로 결과값으로 반환한다.
🌟실행해보기
이렇게 실어 나르면
.
.
아래와 같이 맨 마지막에 "laptop"항목이 추가된걸 볼 수 있다
💙
변경 전
변경 후